diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bee8a64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/db/crawl.py b/db/crawl.py new file mode 100755 index 0000000..93cbcfa --- /dev/null +++ b/db/crawl.py @@ -0,0 +1,124 @@ +#!/usr/bin/python + +import lxml.etree +import requests +import time +import subprocess +import gzip +from queue import Queue +from threading import Thread +from pymongo import MongoClient +client = MongoClient() + +db = client.freifunk + +CONFIG = { + "crawl_netif": "br-mesh", + "mac_netif": "br-mesh", + "vpn_netif": "fffVPN", + "crawl_outgoing_netif": "wlan0", + "num_crawler_threads": 10 +} + +crawl_hood = "nuernberg" + +def crawl(router): + print("Crawling »%(hostname)s«" % router) + crawl_ip = next(netif["ipv6_fe80_addr"] for netif in router["netifs"] if netif["name"] == CONFIG["crawl_netif"]) + try: + node_data = subprocess.check_output(["curl", "-s", "--max-time", "5", "http://[%s%%%s]/node.data" % ( + crawl_ip, + CONFIG["crawl_outgoing_netif"] + )]) + try: + node_data = gzip.decompress(node_data) + except: + pass + + assert "404" not in str(node_data).upper() + + tree = lxml.etree.fromstring(node_data) + print(" --> " + tree.xpath("/data/system_data/hostname/text()")[0]) + + router_update = { + "status": tree.xpath("/data/system_data/status/text()")[0], + "has_wan_uplink": len(tree.xpath("/data/interface_data/fffVPN")) > 0, + "hostname": tree.xpath("/data/system_data/hostname/text()")[0], + "neighbours": [], # list of mongoDB ids (or mac if no corresponding id found) + "netifs": [], + } + + for netif in tree.xpath("/data/interface_data/*"): + interface = { + "name": netif.xpath("name/text()")[0], + "mtu": int(netif.xpath("mtu/text()")[0]), + "mac": netif.xpath("mac_addr/text()")[0].lower(), + } + if len(netif.xpath("ipv6_link_local_addr/text()")) > 0: + interface["ipv6_fe80_addr"] = netif.xpath("ipv6_link_local_addr/text()")[0].lower().split("/")[0] + if len(netif.xpath("ipv4_addr/text()")) > 0: + interface["ipv4_addr"] = netif.xpath("ipv4_addr/text()")[0] + router_update["netifs"].append(interface) + + for originator in tree.xpath("/data/batman_adv_originators/*"): + o_mac = originator.xpath("originator/text()")[0] + o_nexthop = originator.xpath("nexthop/text()")[0] + # mac is the mac of the neighbour w2/5mesh if + # (which might also be called wlan0-1) + o_link_quality = originator.xpath("link_quality/text()")[0] + o_out_if = originator.xpath("outgoing_interface/text()")[0] + if o_mac.upper() == o_nexthop.upper(): + # skip vpn server + if o_out_if == CONFIG["vpn_netif"]: + continue + neighbour = { + "mac": o_mac.lower(), + "quality": int(o_link_quality), + "net_if": o_out_if, + } + try: + neighbour_router = db.routers.find_one({"netifs.mac": neighbour["mac"]}) + neighbour["_id"] = neighbour_router["_id"] + assert "coordinates" in neighbour_router["position"] + assert neighbour_router["position"]["coordinates"][0] != 0 + assert neighbour_router["position"]["coordinates"][1] != 0 + if "comment" in neighbour_router["position"]: + del neighbour_router["position"]["comment"] + neighbour["position"] = neighbour_router["position"] + except: + pass + router_update["neighbours"].append(neighbour) + + db.routers.update_one({"_id": router["_id"]}, {"$set": router_update}) + + #from pprint import pprint + #pprint(router) + except subprocess.CalledProcessError: + db.routers.update_one({"_id": router["_id"]}, {"$set": {"status": "offline"}}) + print(" --> OFFLINE") + except AssertionError: + db.routers.update_one({"_id": router["_id"]}, {"$set": {"status": "unknown"}}) + print(" --> UNKNOWN") + +q = Queue() +keep_working = True + +def worker(): + while keep_working: + router = q.get() + crawl(router) + q.task_done() + +for i in range(CONFIG["num_crawler_threads"]): + t = Thread(target=worker) + t.daemon = True + t.start() + +for router in db.routers.find({"netifs.name": CONFIG["crawl_netif"], "hood": crawl_hood}): + q.put(router) + +# block until queue is empty +q.join() + +# stop workers +keep_working = False diff --git a/db/hoods.py b/db/hoods.py new file mode 100644 index 0000000..07c1214 --- /dev/null +++ b/db/hoods.py @@ -0,0 +1,85 @@ +#!/usr/bin/python + +from math import sin, cos, sqrt, atan2, radians +from pymongo import MongoClient +client = MongoClient() + +db = client.freifunk + +CONFIG = {"default_hood_id": 1} + +""" +db.hoods.insert_many([ +{ + "keyxchange_id": 1, + "name": "transition", + "net": "10.50.16.0/20" +}, +{ + "keyxchange_id": 2, + "name": "fuerth", + "net": "10.50.32.0/21", + "position": {"lat": 49.478330, "lng": 10.990270} +}, +{ + "keyxchange_id": 3, + "name": "nuernberg", + "net": "10.50.40.0/21", + "position": {"lat": 49.448856, "lng": 11.082108} +}, +{ + "keyxchange_id": 4, + "name": "ansbach", + "net": "10.50.48.0/21", + "position": {"lat": 49.300833, "lng": 10.571667} +}, +{ + "keyxchange_id": 5, + "name": "haßberge", + "net": "10.50.56.0/21", + "position": {"lat": 50.093555, "lng": 10.568013} +}, +{ + "keyxchange_id": 6, + "name": "erlangen", + "net": "10.50.64.0/21", + "position": {"lat": 49.600598, "lng": 11.001922} +}, +{ + "keyxchange_id": 6, + "name": "wuerzburg", + "net": "10.50.72.0/21", + "position": {"lat": 49.796880, "lng": 9.934890} +}]) +""" + +def km_distance(pos1, pos2): + lng1 = radians(pos1["lng"]) + lat1 = radians(pos1["lat"]) + lng2 = radians(pos2["coordinates"][0]) + lat2 = radians(pos2["coordinates"][1]) + + dlng = lng2 - lng1 + dlat = lat2 - lat1 + + a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlng / 2)**2 + c = 2 * atan2(sqrt(a), sqrt(1 - a)) + + # approximate radius of earth in km + R = 6373.0 + + distance = R * c + + return distance + +def hood_by_pos(pos): + current_hood_dist = 99999999 + current_hood = db.hoods.find({"keyxchange_id": CONFIG["default_hood_id"]}) + + for hood in db.hoods.find({"position": {"$exists": True}}): + distance = km_distance(hood["position"], pos) + if distance <= current_hood_dist: + current_hood_dist = distance + current_hood = hood + + return current_hood diff --git a/db/import_from_netmon.py b/db/import_from_netmon.py new file mode 100755 index 0000000..0d0b7e9 --- /dev/null +++ b/db/import_from_netmon.py @@ -0,0 +1,82 @@ +#!/usr/bin/python + +import lxml.etree +import requests +import hoods +from pymongo import MongoClient +client = MongoClient() + +db = client.freifunk + + +CONFIG = { + "crawl_netif": "br-mesh", + "mac_netif": "br-mesh", + "vpn_netif": "fffVPN" +} + +# create db indexes +db.routers.create_index([("position", "2dsphere")]) + + +tree = lxml.etree.fromstring(requests.get("https://netmon.freifunk-franken.de/api/rest/routerlist", params={"limit": 1000}).content) + +for r in tree.xpath("/netmon_response/routerlist/router"): + user_netmon_id = int(r.xpath("user_id/text()")[0]) + user = db.users.find_one({"netmon_id": user_netmon_id}) + if user: + user_id = user["_id"] + else: + user_id = db.users.insert({ + "netmon_id": user_netmon_id, + "nickname": r.xpath("user/nickname/text()")[0] + }) + + router = { + "netmon_id": int(r.xpath("router_id/text()")[0]), + "hostname": r.xpath("hostname/text()")[0], + "user": user_id + } + + try: + lng = float(r.xpath("longitude/text()")[0]) + lat = float(r.xpath("latitude/text()")[0]) + assert lng != 0 + assert lat != 0 + #router["position"]["lng"] = lng + #router["position"]["lat"] = lat + #router["loc"] = { "type": "Point", "coordinates": [ -73.88, 40.78 ], "comment": "foobar" } + + router["position"] = { + "type": "Point", + "coordinates": [lng, lat] + } + + # define hood + router["hood"] = hoods.hood_by_pos(router["position"])["name"] + + # try to get comment + router["position"]["comment"] = r.xpath("location/text()")[0] + except (IndexError, AssertionError): + pass + + try: + router["description"] = r.xpath("description/text()")[0] + except IndexError: + pass + + if db.routers.find_one({"netmon_id": router["netmon_id"]}): + print("Updating »%(hostname)s«" % router) + db.routers.update_one({"netmon_id": router["netmon_id"]}, {"$set": router}) + else: + print("Importing »%(hostname)s«" % router) + # crawl HTML page for CONFIG["crawl_netif"] ip for 1st direct router crawl + page = requests.get("https://netmon.freifunk-franken.de/router.php", params={"router_id": router["netmon_id"]}).text + if CONFIG["crawl_netif"] in page: + netif_ip = "fe80%s" % page.split("<b>%s</b>" % CONFIG["crawl_netif"])[1].split("fe80")[1].split("/")[0] + router["netifs"] = [{ + "name": CONFIG["crawl_netif"], + "ipv6_fe80_addr": netif_ip + }] + + db.routers.insert_one(router) diff --git a/map/csv/links.csv b/map/csv/links.csv index 3a8c3f5..a5fdfe6 100644 --- a/map/csv/links.csv +++ b/map/csv/links.csv @@ -1,86 +1,248 @@ WKT,quality -"LINESTRING (11.102066 49.462707,11.102089 49.462664)",223 -"LINESTRING (11.102066 49.462707,11.101679 49.462870)",220 -"LINESTRING (11.102089 49.462664,11.101679 49.462870)",211 -"LINESTRING (11.102170 49.462784,11.102066 49.462707)",145 -"LINESTRING (11.081888 49.448674,11.082030 49.448728)",210 -"LINESTRING (11.101679 49.462870,11.102089 49.462664)",210 -"LINESTRING (11.235317 49.251154,11.235197 49.251260)",226 -"LINESTRING (11.240652 49.493332,11.240508 49.493497)",217 -"LINESTRING (11.240652 49.493332,11.240508 49.493497)",254 -"LINESTRING (11.243831 49.495752,11.243985 49.495789)",247 -"LINESTRING (11.243831 49.495752,11.244049 49.495666)",220 -"LINESTRING (11.326239 49.198173,11.326828 49.198261)",206 -"LINESTRING (11.326239 49.198173,11.326797 49.198226)",244 -"LINESTRING (11.326239 49.198173,11.327320 49.198487)",233 -"LINESTRING (11.056065 49.446113,11.055854 49.446147)",120 -"LINESTRING (11.243985 49.495789,11.244049 49.495666)",255 -"LINESTRING (11.243985 49.495789,11.243831 49.495752)",255 -"LINESTRING (11.243985 49.495789,11.243966 49.495742)",251 -"LINESTRING (11.354212 49.386132,11.354153 49.386207)",255 -"LINESTRING (11.059433 49.445555,11.059507 49.445610)",177 -"LINESTRING (11.350556 49.390745,11.350607 49.390785)",247 -"LINESTRING (11.327199 49.198747,11.327210 49.198556)",243 -"LINESTRING (11.075651 49.455823,11.075663 49.455889)",167 -"LINESTRING (11.118731 49.435057,11.118684 49.435194)",217 -"LINESTRING (11.118731 49.435057,11.118827 49.435124)",255 -"LINESTRING (11.118731 49.435057,11.118827 49.435124)",255 -"LINESTRING (11.118827 49.435124,11.118731 49.435057)",252 -"LINESTRING (11.118827 49.435124,11.118731 49.435057)",242 -"LINESTRING (11.326797 49.198226,11.326828 49.198261)",191 -"LINESTRING (11.326797 49.198226,11.326239 49.198173)",234 -"LINESTRING (11.283251 49.513215,11.283545 49.513014)",115 -"LINESTRING (11.283251 49.513215,11.283375 49.513155)",30 -"LINESTRING (11.086825 49.459502,11.086712 49.459419)",236 -"LINESTRING (11.326828 49.198261,11.326797 49.198226)",215 -"LINESTRING (11.326828 49.198261,11.326239 49.198173)",194 -"LINESTRING (11.064409 49.462178,11.064539 49.462205)",234 -"LINESTRING (11.118684 49.435194,11.118827 49.435124)",250 -"LINESTRING (11.082030 49.448728,11.082150 49.448860)",255 -"LINESTRING (11.082030 49.448728,11.081888 49.448674)",221 -"LINESTRING (11.088155 49.447751,11.092974 49.445546)",167 -"LINESTRING (11.929778 49.547877,11.929843 49.547945)",251 -"LINESTRING (11.929778 49.547877,11.929843 49.547945)",251 -"LINESTRING (11.929778 49.547877,11.929869 49.547872)",250 -"LINESTRING (11.082150 49.448860,11.082298 49.448933)",220 -"LINESTRING (11.082150 49.448860,11.082030 49.448728)",251 -"LINESTRING (11.033664 49.456434,11.033453 49.456213)",199 -"LINESTRING (11.055931 49.446185,11.068540 49.457040)",255 -"LINESTRING (11.055931 49.446185,11.055854 49.446147)",255 -"LINESTRING (11.350607 49.390785,11.350556 49.390745)",251 -"LINESTRING (11.353858 49.385904,11.354153 49.386207)",187 -"LINESTRING (11.353858 49.385904,11.354212 49.386132)",205 -"LINESTRING (11.327210 49.198556,11.327199 49.198747)",255 -"LINESTRING (11.327210 49.198556,11.327320 49.198487)",226 -"LINESTRING (11.060746 49.445249,11.060834 49.445703)",237 -"LINESTRING (11.929843 49.547945,11.929869 49.547872)",255 -"LINESTRING (11.929843 49.547945,11.929778 49.547877)",255 -"LINESTRING (11.929843 49.547945,11.929869 49.547872)",255 -"LINESTRING (11.929843 49.547945,11.929778 49.547877)",255 -"LINESTRING (11.029045 49.408248,11.029147 49.408264)",198 -"LINESTRING (11.068350 49.457076,11.068540 49.457040)",255 -"LINESTRING (11.068350 49.457076,11.068540 49.457040)",125 -"LINESTRING (11.053088 49.450201,11.053244 49.450160)",204 +"LINESTRING (11.101549 49.462832,11.101679 49.462870)",203 +"LINESTRING (11.101679 49.462870,11.102089 49.462664)",214 +"LINESTRING (11.101679 49.462870,11.102066 49.462707)",201 +"LINESTRING (11.101679 49.462870,11.101549 49.462832)",230 +"LINESTRING (11.101679 49.462870,11.102170 49.462784)",132 +"LINESTRING (11.102089 49.462664,11.102066 49.462707)",200 +"LINESTRING (11.102089 49.462664,11.101549 49.462832)",185 +"LINESTRING (11.102089 49.462664,11.101679 49.462870)",169 +"LINESTRING (11.102089 49.462664,11.102170 49.462784)",124 +"LINESTRING (11.102066 49.462707,11.102089 49.462664)",230 +"LINESTRING (11.102066 49.462707,11.101679 49.462870)",222 +"LINESTRING (11.064539 49.462205,11.064409 49.462178)",231 +"LINESTRING (11.054971 49.448058,11.055030 49.448210)",255 +"LINESTRING (11.054971 49.448058,11.055207 49.448157)",166 +"LINESTRING (11.054971 49.448058,11.055030 49.448210)",49 +"LINESTRING (11.064409 49.462178,11.064539 49.462205)",255 +"LINESTRING (11.929778 49.547877,11.929843 49.547945)",245 +"LINESTRING (11.929778 49.547877,11.929843 49.547945)",255 +"LINESTRING (11.929778 49.547877,11.929869 49.547872)",253 +"LINESTRING (11.060746 49.445249,11.060809 49.445722)",243 +"LINESTRING (11.060746 49.445249,11.060834 49.445703)",249 +"LINESTRING (11.309401 49.253167,11.309507 49.253117)",250 +"LINESTRING (11.034003 49.457036,11.053242 49.450239)",255 +"LINESTRING (11.053155 49.450302,11.053088 49.450201)",203 +"LINESTRING (11.053155 49.450302,11.053244 49.450160)",180 +"LINESTRING (11.053155 49.450302,11.053088 49.450201)",255 +"LINESTRING (11.053155 49.450302,11.053244 49.450160)",252 +"LINESTRING (11.053155 49.450302,11.053242 49.450239)",255 +"LINESTRING (11.053088 49.450201,11.052335 49.450259)",230 +"LINESTRING (11.053088 49.450201,11.053155 49.450302)",255 +"LINESTRING (11.053088 49.450201,11.053155 49.450302)",219 +"LINESTRING (11.053088 49.450201,11.053244 49.450160)",183 "LINESTRING (11.053088 49.450201,11.053244 49.450160)",255 -"LINESTRING (11.055833 49.446180,11.053244 49.450160)",122 +"LINESTRING (11.053088 49.450201,11.053242 49.450239)",255 +"LINESTRING (11.929843 49.547945,11.929869 49.547872)",255 +"LINESTRING (11.929843 49.547945,11.929778 49.547877)",247 +"LINESTRING (11.929843 49.547945,11.929869 49.547872)",251 +"LINESTRING (11.929843 49.547945,11.929778 49.547877)",255 +"LINESTRING (11.133719 49.426322,11.133572 49.426172)",237 +"LINESTRING (11.133719 49.426322,11.133547 49.426473)",247 +"LINESTRING (11.133719 49.426322,11.133227 49.426560)",250 +"LINESTRING (11.133719 49.426322,11.133471 49.426658)",231 +"LINESTRING (11.133719 49.426322,11.133790 49.426145)",255 +"LINESTRING (11.133719 49.426322,11.133987 49.426336)",239 +"LINESTRING (11.240508 49.493497,11.240652 49.493332)",255 +"LINESTRING (11.133987 49.426336,11.133719 49.426322)",242 +"LINESTRING (11.133987 49.426336,11.133572 49.426172)",241 +"LINESTRING (11.133987 49.426336,11.133547 49.426473)",251 +"LINESTRING (11.133987 49.426336,11.133227 49.426560)",228 +"LINESTRING (11.133987 49.426336,11.133790 49.426145)",255 +"LINESTRING (11.029045 49.408248,11.029123 49.408339)",251 +"LINESTRING (11.243966 49.495742,11.243985 49.495789)",194 +"LINESTRING (11.243966 49.495742,11.244049 49.495666)",229 +"LINESTRING (11.133790 49.426145,11.133719 49.426322)",223 +"LINESTRING (11.133790 49.426145,11.133572 49.426172)",251 +"LINESTRING (11.133790 49.426145,11.133547 49.426473)",221 +"LINESTRING (11.133790 49.426145,11.133987 49.426336)",240 +"LINESTRING (11.100321 49.463890,11.100011 49.463907)",255 +"LINESTRING (11.242560 49.500782,11.242362 49.500843)",236 +"LINESTRING (11.242560 49.500782,11.242584 49.500867)",238 +"LINESTRING (11.242560 49.500782,11.242506 49.500826)",229 +"LINESTRING (11.267096 49.504519,11.267260 49.504478)",254 +"LINESTRING (11.133471 49.426658,11.133547 49.426473)",247 +"LINESTRING (11.133471 49.426658,11.133227 49.426560)",255 +"LINESTRING (11.326797 49.198226,11.327049 49.198374)",233 +"LINESTRING (11.326797 49.198226,11.326828 49.198261)",230 +"LINESTRING (11.326797 49.198226,11.326239 49.198173)",250 +"LINESTRING (11.353858 49.385904,11.354212 49.386132)",186 +"LINESTRING (11.082520 49.441461,11.082675 49.441323)",167 +"LINESTRING (11.082520 49.441461,11.082450 49.441592)",230 +"LINESTRING (11.097160 49.454873,11.097184 49.454971)",255 +"LINESTRING (11.082675 49.441323,11.082598 49.441201)",217 +"LINESTRING (11.082675 49.441323,11.082520 49.441461)",151 +"LINESTRING (11.133572 49.426172,11.133790 49.426145)",255 +"LINESTRING (11.133572 49.426172,11.133987 49.426336)",219 +"LINESTRING (11.055854 49.446147,11.056065 49.446113)",186 +"LINESTRING (11.055854 49.446147,11.055833 49.446180)",255 +"LINESTRING (11.055854 49.446147,11.055931 49.446185)",255 +"LINESTRING (11.055854 49.446147,11.055853 49.446215)",255 +"LINESTRING (11.055854 49.446147,11.055853 49.446215)",250 +"LINESTRING (11.242584 49.500867,11.242362 49.500843)",250 +"LINESTRING (11.242584 49.500867,11.242560 49.500782)",246 +"LINESTRING (11.242584 49.500867,11.242506 49.500826)",238 +"LINESTRING (11.099227 49.484852,11.099139 49.484793)",255 +"LINESTRING (11.929869 49.547872,11.929843 49.547945)",251 +"LINESTRING (11.929869 49.547872,11.929843 49.547945)",255 +"LINESTRING (11.929869 49.547872,11.929778 49.547877)",251 +"LINESTRING (11.929869 49.547872,11.929778 49.547877)",231 +"LINESTRING (11.133227 49.426560,11.133719 49.426322)",222 +"LINESTRING (11.133227 49.426560,11.133547 49.426473)",236 +"LINESTRING (11.133227 49.426560,11.133471 49.426658)",255 +"LINESTRING (11.133227 49.426560,11.133987 49.426336)",225 +"LINESTRING (11.082450 49.441592,11.082520 49.441461)",226 +"LINESTRING (11.099139 49.484793,11.099227 49.484852)",250 +"LINESTRING (11.235197 49.251260,11.235317 49.251154)",240 +"LINESTRING (11.326239 49.198173,11.326828 49.198261)",225 +"LINESTRING (11.326239 49.198173,11.326797 49.198226)",234 +"LINESTRING (11.326239 49.198173,11.327210 49.198556)",228 +"LINESTRING (11.326239 49.198173,11.327320 49.198487)",202 +"LINESTRING (11.056065 49.446113,11.055833 49.446180)",6 +"LINESTRING (11.056065 49.446113,11.055854 49.446147)",111 +"LINESTRING (11.235317 49.251154,11.235197 49.251260)",238 +"LINESTRING (11.068350 49.457076,11.068540 49.457040)",255 +"LINESTRING (11.068350 49.457076,11.068540 49.457040)",110 +"LINESTRING (11.327320 49.198487,11.327199 49.198747)",236 +"LINESTRING (11.327320 49.198487,11.326239 49.198173)",245 +"LINESTRING (11.327320 49.198487,11.327210 49.198556)",255 +"LINESTRING (11.327320 49.198487,11.327564 49.198490)",238 +"LINESTRING (11.350607 49.390785,11.350556 49.390745)",255 +"LINESTRING (11.055931 49.446185,11.068540 49.457040)",255 +"LINESTRING (11.055931 49.446185,11.055833 49.446180)",255 +"LINESTRING (11.055931 49.446185,11.055853 49.446215)",255 +"LINESTRING (11.055931 49.446185,11.055854 49.446147)",255 +"LINESTRING (11.055931 49.446185,11.053242 49.450239)",152 +"LINESTRING (11.309507 49.253117,11.309635 49.253179)",246 +"LINESTRING (11.309507 49.253117,11.309401 49.253167)",243 +"LINESTRING (11.240652 49.493332,11.240508 49.493497)",218 +"LINESTRING (11.240652 49.493332,11.240508 49.493497)",255 +"LINESTRING (11.118684 49.435194,11.118731 49.435057)",242 +"LINESTRING (11.118684 49.435194,11.118827 49.435124)",246 +"LINESTRING (11.327199 49.198747,11.326239 49.198173)",173 +"LINESTRING (11.327199 49.198747,11.327210 49.198556)",230 +"LINESTRING (11.060577 49.445724,11.060809 49.445722)",232 +"LINESTRING (11.060577 49.445724,11.060834 49.445703)",255 +"LINESTRING (11.060577 49.445724,11.060652 49.445747)",255 +"LINESTRING (11.060577 49.445724,11.053242 49.450239)",246 +"LINESTRING (11.060577 49.445724,11.060834 49.445703)",195 +"LINESTRING (11.055833 49.446180,11.053244 49.450160)",123 "LINESTRING (11.055833 49.446180,11.055931 49.446185)",255 +"LINESTRING (11.055833 49.446180,11.055853 49.446215)",251 +"LINESTRING (11.055833 49.446180,11.055030 49.448210)",160 "LINESTRING (11.055833 49.446180,11.055854 49.446147)",255 -"LINESTRING (11.060834 49.445703,11.060577 49.445724)",124 -"LINESTRING (11.060834 49.445703,11.060577 49.445724)",140 -"LINESTRING (11.033453 49.456213,11.033664 49.456434)",188 -"LINESTRING (11.309507 49.253117,11.309635 49.253179)",243 -"LINESTRING (11.242560 49.500782,11.242506 49.500826)",246 -"LINESTRING (11.243966 49.495742,11.243985 49.495789)",199 -"LINESTRING (11.243966 49.495742,11.244049 49.495666)",212 -"LINESTRING (11.242362 49.500843,11.242560 49.500782)",235 -"LINESTRING (11.242362 49.500843,11.242506 49.500826)",247 -"LINESTRING (11.060809 49.445722,11.060834 49.445703)",151 -"LINESTRING (11.075663 49.455889,11.075651 49.455823)",97 -"LINESTRING (11.242584 49.500867,11.242362 49.500843)",255 -"LINESTRING (11.242584 49.500867,11.242560 49.500782)",232 -"LINESTRING (11.242584 49.500867,11.242506 49.500826)",253 -"LINESTRING (11.929869 49.547872,11.929843 49.547945)",247 -"LINESTRING (11.929869 49.547872,11.929843 49.547945)",216 -"LINESTRING (11.929869 49.547872,11.929778 49.547877)",245 -"LINESTRING (11.929869 49.547872,11.929778 49.547877)",223 -"LINESTRING (11.235197 49.251260,11.235317 49.251154)",253 +"LINESTRING (11.055833 49.446180,11.055853 49.446215)",88 +"LINESTRING (11.060834 49.445703,11.060809 49.445722)",200 +"LINESTRING (11.060834 49.445703,11.060577 49.445724)",152 +"LINESTRING (11.060834 49.445703,11.053242 49.450239)",254 +"LINESTRING (11.060834 49.445703,11.060577 49.445724)",255 +"LINESTRING (11.081578 49.448094,11.081778 49.448205)",217 +"LINESTRING (11.055207 49.448157,11.054971 49.448058)",220 +"LINESTRING (11.326828 49.198261,11.327049 49.198374)",250 +"LINESTRING (11.326828 49.198261,11.326797 49.198226)",251 +"LINESTRING (11.326828 49.198261,11.326239 49.198173)",255 +"LINESTRING (11.326828 49.198261,11.327210 49.198556)",211 +"LINESTRING (11.242362 49.500843,11.242560 49.500782)",241 +"LINESTRING (11.242362 49.500843,11.242584 49.500867)",223 +"LINESTRING (11.242362 49.500843,11.242506 49.500826)",246 +"LINESTRING (11.072188 49.455098,11.072346 49.455030)",223 +"LINESTRING (11.059507 49.445610,11.060577 49.445724)",44 +"LINESTRING (11.059507 49.445610,11.059433 49.445555)",235 +"LINESTRING (11.075663 49.455889,11.075651 49.455823)",182 +"LINESTRING (11.327049 49.198374,11.326828 49.198261)",246 +"LINESTRING (11.243831 49.495752,11.243985 49.495789)",251 +"LINESTRING (11.327210 49.198556,11.326828 49.198261)",205 +"LINESTRING (11.327210 49.198556,11.327199 49.198747)",239 +"LINESTRING (11.327210 49.198556,11.327564 49.198490)",231 +"LINESTRING (11.327210 49.198556,11.327320 49.198487)",247 +"LINESTRING (11.075651 49.455823,11.075663 49.455889)",202 +"LINESTRING (11.075651 49.455823,11.074909 49.455831)",149 +"LINESTRING (11.068540 49.457040,11.055931 49.446185)",255 +"LINESTRING (11.068540 49.457040,11.068350 49.457076)",255 +"LINESTRING (11.068540 49.457040,11.068350 49.457076)",163 +"LINESTRING (11.327564 49.198490,11.327210 49.198556)",242 +"LINESTRING (11.327564 49.198490,11.327320 49.198487)",243 +"LINESTRING (11.053244 49.450160,11.053088 49.450201)",205 +"LINESTRING (11.053244 49.450160,11.052335 49.450259)",245 +"LINESTRING (11.053244 49.450160,11.053155 49.450302)",254 +"LINESTRING (11.053244 49.450160,11.053155 49.450302)",190 +"LINESTRING (11.053244 49.450160,11.055833 49.446180)",155 +"LINESTRING (11.053244 49.450160,11.053088 49.450201)",255 +"LINESTRING (11.053244 49.450160,11.053242 49.450239)",255 +"LINESTRING (11.350556 49.390745,11.350607 49.390785)",255 +"LINESTRING (11.082598 49.441201,11.082675 49.441323)",210 +"LINESTRING (11.082150 49.448860,11.082298 49.448933)",203 +"LINESTRING (11.082150 49.448860,11.081778 49.448205)",255 +"LINESTRING (11.082150 49.448860,11.082030 49.448728)",255 +"LINESTRING (11.102170 49.462784,11.102066 49.462707)",169 +"LINESTRING (11.029123 49.408339,11.029045 49.408248)",234 +"LINESTRING (11.060652 49.445747,11.060809 49.445722)",228 +"LINESTRING (11.060652 49.445747,11.060577 49.445724)",201 +"LINESTRING (11.072346 49.455030,11.072188 49.455098)",236 +"LINESTRING (11.243985 49.495789,11.244049 49.495666)",250 +"LINESTRING (11.243985 49.495789,11.243831 49.495752)",250 +"LINESTRING (11.243985 49.495789,11.243966 49.495742)",204 +"LINESTRING (11.060809 49.445722,11.060577 49.445724)",176 +"LINESTRING (11.060809 49.445722,11.060746 49.445249)",173 +"LINESTRING (11.060809 49.445722,11.060652 49.445747)",185 +"LINESTRING (11.060809 49.445722,11.060834 49.445703)",202 +"LINESTRING (11.060536 49.444944,11.060834 49.445703)",34 +"LINESTRING (11.089671 49.466812,11.089810 49.466786)",242 +"LINESTRING (11.088155 49.447751,11.092974 49.445546)",210 +"LINESTRING (11.055030 49.448210,11.054971 49.448058)",255 +"LINESTRING (11.055030 49.448210,11.055833 49.446180)",114 +"LINESTRING (11.092974 49.445546,11.088155 49.447751)",198 +"LINESTRING (11.089810 49.466786,11.089671 49.466812)",250 +"LINESTRING (11.059433 49.445555,11.059507 49.445610)",229 +"LINESTRING (11.267260 49.504478,11.267096 49.504519)",234 +"LINESTRING (11.283251 49.513215,11.283375 49.513155)",143 +"LINESTRING (11.100011 49.463907,11.100321 49.463890)",251 +"LINESTRING (11.082030 49.448728,11.082150 49.448860)",251 +"LINESTRING (11.082030 49.448728,11.082298 49.448933)",196 +"LINESTRING (11.082030 49.448728,11.081778 49.448205)",255 +"LINESTRING (11.081778 49.448205,11.082150 49.448860)",251 +"LINESTRING (11.081778 49.448205,11.081578 49.448094)",238 +"LINESTRING (11.081778 49.448205,11.082030 49.448728)",251 +"LINESTRING (11.242506 49.500826,11.242362 49.500843)",247 +"LINESTRING (11.242506 49.500826,11.242560 49.500782)",250 +"LINESTRING (11.242506 49.500826,11.242584 49.500867)",249 +"LINESTRING (11.244049 49.495666,11.243985 49.495789)",253 +"LINESTRING (11.244049 49.495666,11.243831 49.495752)",255 +"LINESTRING (11.244049 49.495666,11.243966 49.495742)",238 +"LINESTRING (11.086825 49.459502,11.086712 49.459419)",226 +"LINESTRING (11.309635 49.253179,11.309507 49.253117)",213 +"LINESTRING (11.074909 49.455831,11.075651 49.455823)",157 +"LINESTRING (11.354212 49.386132,11.354153 49.386207)",254 +"LINESTRING (11.033453 49.456213,11.033664 49.456434)",191 +"LINESTRING (11.052335 49.450259,11.053088 49.450201)",144 +"LINESTRING (11.052335 49.450259,11.053244 49.450160)",146 +"LINESTRING (11.283375 49.513155,11.283251 49.513215)",173 +"LINESTRING (11.118827 49.435124,11.118731 49.435057)",255 +"LINESTRING (11.118827 49.435124,11.118684 49.435194)",235 +"LINESTRING (11.118827 49.435124,11.118731 49.435057)",242 +"LINESTRING (11.133547 49.426473,11.133719 49.426322)",246 +"LINESTRING (11.133547 49.426473,11.133227 49.426560)",255 +"LINESTRING (11.133547 49.426473,11.133471 49.426658)",255 +"LINESTRING (11.133547 49.426473,11.133790 49.426145)",236 +"LINESTRING (11.133547 49.426473,11.133987 49.426336)",255 +"LINESTRING (11.053242 49.450239,11.055931 49.446185)",242 +"LINESTRING (11.053242 49.450239,11.034003 49.457036)",255 +"LINESTRING (11.053242 49.450239,11.053155 49.450302)",255 +"LINESTRING (11.053242 49.450239,11.060834 49.445703)",242 +"LINESTRING (11.053242 49.450239,11.053088 49.450201)",255 +"LINESTRING (11.053242 49.450239,11.060577 49.445724)",243 +"LINESTRING (11.053242 49.450239,11.053244 49.450160)",255 +"LINESTRING (11.118731 49.435057,11.118684 49.435194)",247 +"LINESTRING (11.118731 49.435057,11.118827 49.435124)",255 +"LINESTRING (11.118731 49.435057,11.118827 49.435124)",255 +"LINESTRING (11.354153 49.386207,11.353858 49.385904)",226 +"LINESTRING (11.354153 49.386207,11.354212 49.386132)",255 +"LINESTRING (11.082298 49.448933,11.082150 49.448860)",233 +"LINESTRING (11.082298 49.448933,11.082030 49.448728)",219 +"LINESTRING (11.055853 49.446215,11.056065 49.446113)",156 +"LINESTRING (11.055853 49.446215,11.055833 49.446180)",51 +"LINESTRING (11.055853 49.446215,11.055833 49.446180)",255 +"LINESTRING (11.055853 49.446215,11.055931 49.446185)",255 +"LINESTRING (11.055853 49.446215,11.055854 49.446147)",251 +"LINESTRING (11.055853 49.446215,11.055854 49.446147)",251 +"LINESTRING (11.097184 49.454971,11.097160 49.454873)",231 diff --git a/map/csv/routers.csv b/map/csv/routers.csv index 37b8ede..8fe8305 100644 --- a/map/csv/routers.csv +++ b/map/csv/routers.csv @@ -1,836 +1,878 @@ lng,lat,status -10.525941,50.139822,offline -11.340223,49.559511,offline -12.876245,47.722455,offline -12.876491,47.722397,offline -12.488864,47.671465,offline -9.942015,49.788808,unknown -10.788091,49.406085,offline -11.073679,49.416972,unknown -11.000646,49.591327,offline -11.073677,49.416949,unknown -11.092324,49.445642,unknown -10.878385,49.874056,offline -10.833539,49.904606,offline -10.527627,50.016878,offline -11.021527,49.592351,unknown -11.002459,49.458602,offline -11.455897,49.296284,offline -11.057572,49.457836,unknown -10.568271,50.092782,offline -11.302936,49.392122,offline -11.920480,50.309827,offline -12.720754,49.386128,unknown -11.449773,49.292383,offline -12.720866,49.385865,unknown -12.876390,47.722300,offline -10.523081,50.138232,unknown -11.028449,49.452113,unknown -9.933486,49.789724,unknown -10.993559,49.571714,unknown -10.788976,49.286827,offline -12.856180,47.719058,offline -11.920712,50.309814,offline -10.961113,50.264736,offline -10.961126,50.264679,offline -10.961212,50.264717,offline -10.522011,50.137372,unknown -9.911240,49.793022,unknown -10.532133,50.121706,offline -9.911216,49.793065,unknown -10.989276,49.566912,unknown -10.882714,49.567824,unknown -10.417507,49.501351,unknown -12.876530,47.719331,offline -11.504769,50.015039,offline -11.920552,50.309804,offline -12.876685,47.719352,offline -11.920657,50.309832,offline -11.037655,49.436696,unknown -10.928628,49.487818,offline -10.862520,49.466480,offline -10.970516,49.483072,offline -10.985384,49.461922,offline -12.875139,47.726595,offline -11.920662,50.309727,offline -9.063665,50.000543,offline -11.092141,49.442505,unknown -11.920510,50.309784,offline -11.920698,50.309767,offline -12.875386,47.726432,offline -11.035052,49.591197,offline -10.987194,49.466779,offline -11.006825,49.589743,offline -11.916872,50.321122,unknown -11.222889,49.088226,offline -11.060126,49.445556,unknown -11.006780,49.589737,offline -10.532584,50.122269,offline -11.544093,49.950430,offline -12.877645,47.724412,offline -12.875267,47.722320,offline -12.536847,47.896881,offline -10.892891,49.901734,offline -11.034815,49.591138,offline -11.543986,49.950399,offline -9.063855,50.000205,offline -10.520334,50.035783,offline -11.495819,50.010280,offline -10.532606,50.122273,offline -10.828609,49.910265,offline -10.509678,50.031500,offline -11.003145,49.596533,offline -12.876127,47.722416,offline -12.876697,47.722391,offline -12.875267,47.726502,offline -9.973182,49.772862,offline -10.775375,49.753544,offline -12.876486,47.722398,offline -10.975685,50.249875,offline -10.877489,49.464505,offline -9.214525,49.807541,offline -10.984582,49.495361,offline -12.841281,47.811387,offline -12.856177,47.719050,offline -9.957237,49.742232,offline -10.512596,50.036752,offline -10.981525,49.477825,offline -10.160924,50.536065,offline -10.078261,49.139316,offline -10.568912,50.093722,offline -10.505220,50.031364,offline -9.289469,50.014172,offline -10.828762,49.910230,offline -10.515771,50.026236,offline -10.988399,49.553703,offline -11.003712,49.468166,offline -9.914954,49.799846,offline -11.005146,49.773141,offline -10.204013,50.099861,offline -11.005097,49.591708,offline -11.003650,49.468073,offline -12.875263,47.726370,offline -10.516281,50.025988,offline -12.877034,47.724609,offline -10.711131,49.954689,offline -10.882779,49.886581,offline -12.876674,47.724466,offline -10.084902,49.138702,offline -12.538333,47.896518,offline -10.509713,50.031443,offline -11.003559,49.468047,offline -12.877489,47.722892,offline -9.296888,50.011694,offline -11.005032,49.591706,offline -10.192121,49.911825,offline -11.034805,49.591177,offline -11.034863,49.591156,offline -9.289490,50.014343,offline -10.523518,50.138394,offline -11.003615,49.468081,offline -10.981610,49.477771,offline -10.987268,49.466670,offline -10.509616,50.031446,offline -10.078175,49.139313,offline -11.596222,49.916428,offline -10.550256,49.997336,offline -11.034688,49.591141,offline +11.118532,49.435033,unknown +11.118621,49.434971,unknown +10.509678,50.031500,unknown +11.920662,50.309727,unknown +10.997139,49.470392,unknown +11.003145,49.596533,unknown +11.041312,49.653691,unknown +11.041316,49.653656,unknown +10.428619,49.706909,unknown +10.566479,50.093715,unknown +11.182485,49.784303,unknown +10.975685,50.249875,unknown +9.119339,49.989220,unknown +10.895374,49.899066,unknown +10.532133,50.121706,unknown +11.168654,49.464552,offline +10.505220,50.031364,unknown +11.056371,49.769906,unknown +10.072883,49.135864,unknown +60.831106,80.622391,unknown +10.982852,49.477194,unknown +11.005508,49.594951,unknown +11.243284,50.138965,unknown +9.859084,49.656185,unknown +11.003712,49.468166,unknown +10.534295,50.124206,unknown +10.885491,49.890566,unknown +10.989970,49.469121,unknown +10.828743,49.910203,unknown +12.981503,47.841012,offline 12.876406,47.722315,offline -11.259447,49.803692,offline -9.297121,50.011693,offline -11.005627,49.594883,offline -11.040246,49.599210,offline -10.520345,50.035831,offline -10.515629,50.026301,offline -12.143921,50.171483,offline -10.505234,50.031367,offline -10.985279,49.480760,offline -10.532642,50.122208,offline -10.515552,50.026455,offline -11.019059,49.594271,offline -10.078316,49.139407,offline -11.034968,49.590759,offline -10.994214,49.583316,offline +11.005146,49.773141,unknown +11.120790,50.328531,unknown +10.986905,49.479970,unknown +9.858931,49.656176,unknown +10.079806,50.197198,unknown +10.957057,50.068699,unknown +11.003650,49.468073,unknown +10.515807,50.026255,unknown +9.214397,49.807416,unknown +12.877489,47.722892,offline +10.986921,49.479875,unknown +11.025069,49.466837,unknown +11.594020,49.917005,unknown +11.062090,50.223143,unknown +11.186281,49.780197,unknown +10.997367,49.692809,unknown +11.003559,49.468047,unknown +11.340734,49.604052,unknown +10.523518,50.138394,unknown +9.914002,49.798670,unknown +10.505234,50.031367,unknown +11.028237,49.554477,unknown +10.974921,49.478231,unknown +11.034863,49.591156,unknown +9.289490,50.014343,unknown +10.601485,49.918475,unknown +11.021578,49.551924,unknown +11.183465,49.785296,unknown +11.596222,49.916428,unknown +11.188183,49.780871,unknown +9.166753,49.800333,unknown +11.003615,49.468081,unknown +11.217100,49.808030,unknown +10.958208,49.473229,unknown +10.080160,50.197182,unknown +10.958331,49.473225,unknown +11.187370,49.779739,unknown +11.002614,49.563322,unknown +9.297121,50.011693,unknown +10.994214,49.583316,unknown +11.593939,49.916975,unknown +11.183690,49.785292,unknown 12.876858,47.724324,offline +10.986886,49.479674,unknown 12.876854,47.724644,offline -11.034869,49.591122,offline -11.323428,49.895837,offline -10.532659,50.122260,offline -9.297108,50.011760,offline -12.875285,47.726267,offline -10.985285,49.480873,offline -10.515627,50.026399,offline -10.988130,49.099465,offline -10.892679,49.901962,offline -11.006354,49.589782,offline -10.534295,50.124206,offline -11.065566,49.699955,offline -10.990083,49.469132,offline -11.049116,49.723191,offline +11.259447,49.803692,unknown +10.509616,50.031446,unknown +10.998107,49.463686,unknown +10.906020,49.903336,unknown +11.021630,49.551939,unknown +11.040246,49.599210,unknown +9.297108,50.011760,unknown +10.907235,49.906760,unknown +10.961212,50.264717,unknown +9.914678,49.799509,unknown +12.877645,47.724412,offline +9.927657,49.797144,unknown +12.981615,47.841185,offline +11.034869,49.591122,unknown +10.534344,50.124102,unknown +11.022248,49.604012,unknown +11.034688,49.591141,unknown +9.063855,50.000205,unknown +9.783636,50.166289,unknown +11.186340,49.780116,unknown +10.568739,50.093349,unknown +11.920686,50.309726,unknown +11.019059,49.594271,unknown +11.141773,50.051097,unknown +10.961319,50.264737,unknown +10.251387,50.067659,unknown +11.915944,50.313483,unknown +11.001236,49.464852,unknown +9.878062,49.779256,unknown +9.927720,49.797040,unknown +10.987428,49.814639,unknown +9.971415,49.979087,unknown +12.857142,47.803261,offline +10.071795,49.134617,unknown +12.876697,47.722391,offline +10.566753,50.093625,unknown +10.990008,49.469160,unknown +11.034815,49.591138,unknown +10.998187,49.463708,unknown +12.875267,47.726502,offline +11.141730,50.051155,unknown +11.602325,50.060661,unknown +10.520279,50.035814,unknown +10.892891,49.901734,unknown +9.877839,49.779237,unknown +10.533152,50.123749,unknown +11.012132,49.574120,unknown +10.251038,50.067610,unknown +10.512596,50.036752,unknown +12.875263,47.726370,offline +11.572940,49.943752,unknown +10.963593,49.597168,unknown +10.984582,49.495361,unknown +10.192121,49.911654,unknown +11.173535,49.776331,unknown +11.141821,50.051059,unknown +10.160722,50.536164,unknown +11.007302,49.467736,unknown +11.920510,50.309784,unknown +10.636718,50.152130,unknown +10.568412,50.093444,unknown +9.155350,49.970969,unknown +10.956244,49.591039,unknown +10.599444,49.921958,unknown +10.988655,49.479046,unknown +10.711131,49.954689,unknown +11.544093,49.950430,unknown +11.188583,49.780680,unknown +10.990083,49.467561,unknown +9.957237,49.742232,unknown +10.988122,49.545037,unknown +10.968333,49.566381,unknown +10.567928,50.093549,unknown +12.841281,47.811387,offline +12.876486,47.722398,offline +10.529795,50.139491,unknown +11.004878,49.595174,unknown +11.047370,49.722528,unknown +11.119456,50.323470,unknown +10.990636,49.477537,unknown +10.968478,49.566593,unknown +11.014023,49.597457,unknown +9.938368,49.780985,unknown +10.532606,50.122273,unknown +12.857250,47.803357,offline +10.963567,49.597102,unknown +10.998092,49.472048,unknown +10.568013,50.093556,unknown +12.877034,47.724609,offline +10.520334,50.035783,unknown +10.516281,50.025988,unknown +11.005097,49.591708,unknown +10.509713,50.031443,unknown +10.982905,49.477250,unknown +10.521946,50.137449,unknown +10.674012,50.116946,unknown +11.047256,49.722446,unknown +10.515771,50.026236,unknown +9.296888,50.011694,unknown +11.190614,49.787469,unknown +11.920698,50.309767,unknown +11.920712,50.309814,unknown +11.034805,49.591177,unknown +10.566721,50.093632,unknown +10.775375,49.753544,unknown +10.192121,49.911825,unknown +10.982541,49.472619,unknown +10.537984,50.100465,unknown +9.877231,49.779214,unknown +11.187227,49.779785,unknown +9.971535,49.979202,unknown +10.568437,50.092998,unknown +11.187471,49.780375,unknown +10.515629,50.026301,unknown +10.520345,50.035831,unknown +12.876674,47.724466,offline +11.005032,49.591706,unknown +9.168675,49.808214,unknown +10.885236,49.890433,unknown +10.974856,49.478258,unknown +11.053807,49.772821,unknown +10.908479,48.959782,unknown +10.981610,49.477771,unknown +10.204013,50.099861,unknown +10.997465,49.692763,unknown +10.982487,49.472538,unknown +10.519430,50.135393,unknown +11.047525,49.722542,unknown +10.801856,50.094259,unknown +11.041360,49.653638,unknown +10.538240,50.100541,unknown +10.997036,50.106607,unknown +11.047504,49.722587,unknown +9.914954,49.799846,unknown +11.340616,49.604171,unknown +10.890577,49.894727,unknown +10.988175,49.478515,unknown +10.982572,49.472687,unknown +10.532642,50.122208,unknown +11.004320,49.580096,unknown +10.512795,50.036745,unknown +11.005627,49.594883,unknown +10.997409,49.692662,unknown +11.916821,50.320391,unknown +11.041361,49.653677,unknown +10.985279,49.480760,unknown +12.537320,47.896683,offline +11.190315,49.787040,unknown +11.190420,49.786847,unknown +10.906226,49.903004,unknown +10.988309,49.478531,unknown +10.515552,50.026455,unknown +10.070424,49.137366,unknown +10.950612,50.268591,unknown +10.988130,49.099465,unknown +10.532659,50.122260,unknown +10.828609,49.910265,unknown +11.015709,49.606981,unknown +11.183526,49.785386,unknown +9.913155,49.798666,unknown +11.190441,49.787138,unknown +11.701647,50.327732,unknown +10.890548,49.895099,unknown +10.001220,49.723772,unknown +11.005523,49.594917,unknown +10.591352,50.016196,unknown +10.223139,49.989902,unknown +10.193749,49.904479,unknown +10.532584,50.122269,unknown +10.985285,49.480873,unknown +10.882779,49.886581,unknown +11.279979,49.351159,offline +11.498061,50.018584,unknown +60.714322,80.530168,unknown +11.910720,50.321210,unknown +10.515627,50.026399,unknown +10.977123,49.479624,unknown +11.323428,49.895837,unknown +10.523192,50.137946,unknown +11.186136,49.779856,unknown +9.955512,49.799436,unknown +11.190484,49.786816,unknown +11.005447,49.594942,unknown +9.252034,49.710499,unknown +10.989499,49.479695,unknown +12.875267,47.722320,offline +10.882135,49.884775,unknown +11.029383,49.461221,unknown +10.523577,50.137909,unknown +11.920552,50.309804,unknown +11.495819,50.010280,unknown +10.893117,49.896894,unknown +11.182247,49.786739,unknown +11.035052,49.591197,unknown +10.887456,49.889045,unknown +11.186303,49.778791,unknown +10.505244,50.031244,unknown +11.701909,50.327644,unknown +9.890732,50.116276,unknown +11.023406,49.552980,unknown +10.522687,50.137473,unknown +11.543986,49.950399,unknown +10.509131,50.031318,unknown +10.565295,49.965173,unknown +11.003634,49.564394,unknown +12.894194,53.106154,unknown +11.920657,50.309832,unknown +10.523230,50.138205,unknown +12.856177,47.719050,offline +10.512151,50.030121,unknown +11.910778,50.321262,unknown +10.564788,49.965051,unknown +10.160924,50.536065,unknown +9.214525,49.807541,unknown +10.990034,49.478570,unknown +9.937182,49.779186,unknown +10.954807,49.481858,unknown +10.990069,49.467614,unknown +11.081195,49.434659,offline +10.828762,49.910230,unknown +12.109680,50.004267,unknown +11.920480,50.309827,unknown +10.568053,50.093510,unknown +10.567957,50.093510,unknown +10.987816,49.568979,unknown +11.319372,49.681437,unknown +11.098202,49.467622,offline +10.538624,50.100408,unknown +11.070874,49.448920,offline +10.566882,50.093535,unknown +10.568271,50.092782,unknown +10.567107,50.093360,unknown +10.568488,50.093145,unknown +12.720754,49.386128,unknown +12.720866,49.385865,unknown +11.007724,49.323687,offline +10.774739,49.286831,unknown +10.774256,49.286657,unknown +11.044770,49.715386,unknown +10.999170,49.471757,unknown +9.148782,49.986895,unknown +12.912773,48.861812,offline +12.912641,48.861849,offline +12.912839,48.861861,offline +10.566865,49.303102,unknown +10.989386,49.469083,unknown +10.989565,49.469104,unknown +10.828818,49.910221,unknown +10.924390,49.488667,unknown +11.025414,49.464222,unknown +11.007188,49.593798,unknown +11.025939,49.321191,offline +11.021578,49.330753,offline +10.192518,49.908958,unknown +11.327803,49.199656,offline +10.963883,48.926250,unknown +9.849264,49.744124,unknown +11.045380,49.716252,unknown +9.947160,49.783506,unknown +11.020306,49.630049,unknown +10.951835,49.596806,unknown +10.987766,49.479036,unknown +10.987805,49.478714,unknown +12.875386,47.726432,offline +11.086419,49.438885,offline +11.082126,49.410361,offline +11.848992,49.432614,offline +10.917843,49.555876,unknown +11.077642,49.439706,offline +10.852749,49.615866,unknown +9.931868,49.789348,unknown +10.987194,49.466779,unknown +10.917840,49.555857,unknown +10.918082,49.555651,unknown +11.067998,49.434533,offline +11.023815,49.459947,unknown +11.043436,49.602096,unknown +11.222889,49.088226,offline +11.360666,49.385096,offline +11.076230,49.807087,unknown +9.941980,49.788912,unknown +9.927553,49.797235,unknown +11.340223,49.559511,offline 11.028143,49.409222,offline 11.280532,49.510397,offline 11.275551,49.508415,offline -11.042858,49.427845,offline -10.510740,50.031288,offline -11.025030,49.466839,offline -10.163241,49.802646,offline -9.981128,49.759601,offline -9.945931,49.802555,offline -11.636195,49.688605,offline -10.981472,49.477669,offline -10.835110,49.904612,offline -10.905282,49.907504,offline -10.510762,50.031425,offline -10.510756,50.031365,offline -10.565492,50.077538,offline +10.510740,50.031288,unknown +9.945931,49.802555,unknown +11.636195,49.688605,unknown +12.876245,47.722455,offline +12.876185,47.726042,offline +12.876491,47.722397,offline +9.973182,49.772862,unknown +12.488864,47.671465,offline +10.510762,50.031425,unknown +10.510756,50.031365,unknown +10.565492,50.077538,unknown 11.108226,49.457925,offline +10.988014,49.478489,unknown 12.885649,47.733404,offline -10.194905,49.905280,offline -10.968894,49.590113,offline -11.324643,49.218469,offline -11.042215,49.719257,offline -11.504425,50.118202,offline -10.968597,49.436239,offline -10.806075,49.686635,offline -11.190862,49.787398,offline -11.190802,49.787521,offline -11.006820,49.563663,offline +10.788091,49.406085,unknown +11.042215,49.719257,unknown +11.504425,50.118202,unknown +10.806075,49.686635,unknown +11.190862,49.787398,unknown +11.190802,49.787521,unknown +11.006833,49.590551,unknown 11.283018,49.513063,offline -10.987932,49.478456,offline -10.985024,49.473625,offline -10.897021,48.896484,offline +10.985024,49.473625,unknown +10.897021,48.896484,unknown 11.064517,49.462153,offline -10.897136,48.895706,offline +10.897136,48.895706,unknown +11.000646,49.591327,unknown 11.074484,49.453882,offline -11.126766,50.324195,offline -10.902606,49.902690,offline +10.878385,49.874056,unknown +11.126766,50.324195,unknown +10.902606,49.902690,unknown 11.076287,49.456730,offline -11.340736,49.604014,offline -9.934473,49.787581,offline -10.073122,49.664114,offline -11.004878,49.595174,offline -10.538061,50.101662,offline -10.540615,50.102081,offline -9.985239,49.778779,offline +10.990109,49.469184,unknown +11.340736,49.604014,unknown +9.976659,49.810300,unknown +10.527627,50.016878,unknown +11.283545,49.513014,offline +10.538061,50.101662,unknown +10.540615,50.102081,unknown +11.081888,49.448674,offline 11.086518,49.438870,offline -10.472674,49.283344,offline -10.520283,50.137959,offline -10.513615,50.029902,offline +10.520283,50.137959,unknown +10.513615,50.029902,unknown 11.055398,49.448507,offline -11.090564,49.445398,offline -11.235779,49.493271,offline -11.319372,49.681437,offline -11.098202,49.467622,offline -10.905973,49.903398,offline -11.920686,50.309726,offline -10.892620,49.901918,offline -11.087694,49.462397,offline -9.543645,50.116936,offline -11.319469,49.681528,offline -11.098227,49.467634,offline -11.070874,49.448920,offline -10.566882,50.093535,offline -10.893817,49.901219,offline --103.359772,25.829769,offline -10.567107,50.093360,offline -10.568488,50.093145,offline +10.892620,49.901918,unknown +9.543645,50.116936,unknown +11.455897,49.296284,offline +10.893817,49.901219,unknown +-103.359772,25.829769,unknown +11.066998,49.457825,offline +11.302936,49.392122,offline 11.067586,49.301931,offline -11.090247,49.470092,offline 11.041378,49.407958,offline -11.007724,49.323687,offline -10.523112,50.138205,offline -10.523121,50.138256,offline -10.774739,49.286831,offline -10.523160,50.138220,offline -10.774256,49.286657,offline -11.044770,49.715386,offline -9.140970,50.054801,offline -10.572866,50.091244,offline -10.521246,50.141338,offline -10.999170,49.471757,offline +11.067386,49.301953,offline +11.449773,49.292383,offline +11.043470,49.428676,offline +9.929069,49.789285,unknown +12.876390,47.722300,offline +12.538333,47.896518,offline +10.523112,50.138205,unknown +10.523121,50.138256,unknown +10.523160,50.138220,unknown +9.140970,50.054801,unknown +10.521246,50.141338,unknown 11.130612,49.415327,offline -11.245609,49.496408,offline -11.126017,49.604629,offline +10.961113,50.264736,unknown +10.961126,50.264679,unknown +10.151351,50.046329,unknown +11.058125,49.450704,offline +11.058109,49.450704,offline +11.136794,49.716402,unknown +11.175579,49.862027,unknown +10.224701,50.048556,unknown +11.099845,49.456309,offline +11.019751,49.579902,unknown +12.876530,47.719331,offline +11.504769,50.015039,unknown +12.876685,47.719352,offline +11.187048,49.779940,unknown +10.928628,49.487818,unknown +10.862520,49.466480,unknown +12.143921,50.171483,unknown +10.970516,49.483072,unknown +10.985384,49.461922,unknown +11.058297,49.447463,offline +11.034968,49.590759,unknown +12.875139,47.726595,offline +9.171977,49.966727,unknown +11.098831,49.686121,unknown +9.980693,49.981696,unknown +12.101440,50.005091,unknown +10.232217,50.047500,unknown +10.906055,49.903147,unknown +10.997782,49.482384,unknown +10.906012,49.903270,unknown +11.006871,49.590657,unknown +9.908552,49.731538,unknown +11.910751,50.321198,unknown +11.911046,50.321183,unknown +12.894924,53.106654,unknown +11.066161,49.428338,offline +11.183692,49.780994,unknown +9.985070,49.810126,unknown +10.642023,49.809485,unknown +11.001957,49.599824,unknown +11.101549,49.462832,online +11.101679,49.462870,online +11.102089,49.462664,online +11.102066,49.462707,online +11.360663,49.385193,offline +11.235779,49.493271,offline +11.042858,49.427845,offline +11.069763,49.466817,offline +11.090564,49.445398,offline +11.087694,49.462397,offline +11.172860,49.409692,offline +12.982618,48.978968,offline +11.064539,49.462205,online +11.082807,49.460061,online +11.058161,49.445836,online +11.054971,49.448058,online +11.101440,49.485951,online +11.029147,49.408264,online +11.064409,49.462178,online +11.110894,49.468005,online +11.077228,49.457249,online +11.929778,49.547877,online +11.060746,49.445249,online +11.056507,49.417416,online +11.088617,49.460800,online +11.309401,49.253167,online +11.271431,49.526014,online +11.034003,49.457036,online +11.053155,49.450302,online +11.053088,49.450201,online +11.929843,49.547945,online +11.133719,49.426322,online +11.073559,49.451719,online +11.240508,49.493497,online +11.067116,49.461506,online +11.133987,49.426336,online +11.029045,49.408248,online +11.060909,49.465239,online +11.243966,49.495742,online +11.133790,49.426145,online +11.100321,49.463890,online +12.736223,48.001208,offline +11.242560,49.500782,online +11.267096,49.504519,online +11.054708,49.450712,offline +11.098227,49.467634,offline +11.090247,49.470092,offline 11.098190,49.467641,offline 11.091987,49.442510,offline 11.007767,49.323641,offline 11.081176,49.434773,offline -10.151351,50.046329,offline -12.912773,48.861812,offline -12.912641,48.861849,offline -12.912839,48.861861,offline -11.058109,49.450704,offline -10.995582,49.481852,offline -10.566865,49.303102,offline -11.136794,49.716402,offline -10.989386,49.469083,offline -10.519430,50.135393,offline -10.989565,49.469104,offline -10.906055,49.903305,offline -10.828818,49.910221,offline -10.591352,50.016196,offline -11.175579,49.862027,offline -10.924390,49.488667,offline -11.003676,49.607975,offline -12.982618,48.978968,offline -10.990716,49.467650,offline -11.060447,49.446610,offline -11.007188,49.593798,offline -10.224701,50.048556,offline 11.067264,49.441448,offline -11.019751,49.579902,offline 11.095644,49.459844,offline -9.166837,49.804666,offline -11.057449,49.462101,offline -11.269548,49.522464,offline -11.319550,49.681526,offline -11.054913,49.451880,offline 11.095078,49.461775,offline -11.188183,49.780871,offline -11.245409,49.496466,offline -11.245785,49.496359,offline -11.246137,49.496275,offline -10.567589,50.094060,offline -11.246078,49.496386,offline -11.246003,49.496502,offline -11.025939,49.321191,offline -11.058297,49.447463,offline -11.021578,49.330753,offline -11.098831,49.686121,offline -10.192518,49.908958,offline -9.971535,49.979202,offline -11.080995,49.441029,offline -9.980693,49.981696,offline 11.130647,49.400173,offline -12.101440,50.005091,offline -10.601485,49.918475,offline -11.327803,49.199656,offline -9.979234,49.980904,offline -9.971415,49.979087,offline -10.078310,49.139442,offline -10.963883,48.926250,offline -10.906055,49.903147,offline -10.997782,49.482384,offline -10.833598,49.904654,offline -9.849264,49.744124,offline -11.045380,49.716252,offline -11.007027,49.563734,offline 11.918868,49.151482,offline -11.006807,49.563798,offline 11.073820,49.414274,offline -9.908316,49.731644,offline 11.036839,49.417234,offline -9.908552,49.731538,offline -9.947160,49.783506,offline -9.927720,49.797040,offline -11.020306,49.630049,offline -10.951835,49.596806,offline -10.987766,49.479036,offline -10.892687,49.901887,offline -10.907294,49.906703,offline -10.987805,49.478714,offline -11.094171,50.289788,offline 11.468997,48.717441,offline -11.595885,49.962546,offline -8.288173,51.066162,offline -10.723042,49.670028,offline -11.086419,49.438885,offline -11.082126,49.410361,offline 11.096728,49.455496,offline 11.929880,49.547875,offline -11.848992,49.432614,offline -9.930895,49.788710,offline -10.917843,49.555876,offline -10.179729,49.375873,offline -11.077642,49.439706,offline -11.014910,49.593670,offline -10.044958,49.160604,offline -10.961185,49.599378,offline -10.852749,49.615866,offline -9.931868,49.789348,offline -9.193202,50.000939,offline 11.376556,49.510079,offline 11.376556,49.510094,offline 11.376678,49.510051,offline 11.376805,49.510127,offline 11.376646,49.510194,offline -10.339680,49.378894,offline -10.917840,49.555857,offline -10.918082,49.555651,offline -9.995584,50.057466,offline -11.067998,49.434533,offline -11.023815,49.459947,offline -11.043436,49.602096,offline -9.955512,49.799436,offline 11.077502,49.436229,offline -11.360663,49.385193,offline -11.360666,49.385096,offline -11.076230,49.807087,offline -9.171977,49.966727,offline -11.005447,49.594942,offline -60.714322,80.530168,offline -11.047370,49.722528,offline -10.078497,50.197651,offline -9.877839,49.779237,offline -10.033698,50.132557,offline -10.816778,49.324346,offline -11.015709,49.606981,offline -10.509131,50.031318,offline -10.251387,50.067659,offline -11.186136,49.779856,offline -10.568739,50.093349,offline -11.141821,50.051059,offline -10.071169,49.134855,offline -11.244030,49.730286,offline -10.523192,50.137946,offline -10.892848,49.901716,offline -10.963593,49.597168,offline -11.023406,49.552980,offline -10.071795,49.134617,offline -11.498061,50.018584,offline -11.186303,49.778791,offline -9.155350,49.970969,offline -11.190420,49.786847,offline -10.078141,49.139363,offline -9.252034,49.710499,offline -12.876185,47.726042,offline -11.001236,49.464852,offline -10.512151,50.030121,offline -11.047256,49.722446,offline -10.990008,49.469160,offline -10.192802,49.909959,offline -10.985111,49.475264,offline -10.523577,50.137909,offline -10.533911,50.123538,offline -10.997465,49.692763,offline -11.119456,50.323470,offline -11.017800,49.576788,offline -10.566753,50.093625,offline -10.523230,50.138205,offline -10.505244,50.031244,offline -10.990781,49.467218,offline -11.572940,49.943752,offline -10.251038,50.067610,offline -11.322812,50.239167,offline -10.997139,49.470392,offline -11.245164,49.731102,offline -11.190441,49.787138,offline -11.041316,49.653656,offline -10.997409,49.692662,offline -10.522687,50.137473,offline -11.041312,49.653691,offline -10.428619,49.706909,offline -10.339465,49.378880,offline -10.193749,49.904479,offline -11.182485,49.784303,offline -11.007302,49.467736,offline -10.534915,50.121802,offline -10.520279,50.035814,offline -10.191423,49.913006,offline -10.065375,49.143855,offline -10.070424,49.137366,offline +10.990781,49.467218,unknown +10.191423,49.913006,unknown +9.940792,49.803358,unknown +10.977174,49.482142,unknown +9.065016,50.057475,unknown +11.023326,49.468447,unknown +10.084902,49.138702,unknown +10.995525,49.481872,unknown +10.905761,49.903194,unknown +11.216290,49.808186,unknown +10.995742,49.481875,unknown +10.121983,49.124405,unknown +10.177706,50.294012,unknown +11.025300,49.464601,unknown +10.961035,49.493602,unknown +10.995657,49.462413,unknown +10.618114,49.229789,unknown +9.065716,50.053272,unknown +10.191718,49.912910,unknown +11.188575,49.780687,unknown +10.078497,50.197651,unknown +11.085346,50.215051,unknown +10.078175,49.139313,unknown +10.984827,49.475034,unknown +11.326923,49.610629,unknown +11.188005,49.780642,unknown +10.995582,49.481852,unknown +10.192872,49.908731,unknown +11.049116,49.723191,unknown +10.892848,49.901716,unknown +9.981128,49.759601,unknown +10.065297,49.143771,unknown +10.712622,49.907304,unknown +10.194304,49.909319,unknown +10.541463,50.031815,unknown +10.989504,49.478872,unknown +9.783781,50.166318,unknown +11.078757,50.215833,unknown +10.525872,50.036099,unknown +10.995493,49.638686,unknown +10.966523,49.472105,unknown +11.025064,49.466931,unknown +10.907192,49.906796,unknown +10.082632,50.194320,unknown +10.568730,50.093639,unknown +10.526221,50.036083,unknown +10.984802,49.475135,unknown +12.439073,49.979650,unknown +10.966847,49.472001,unknown +10.192155,49.908690,unknown +10.997639,49.482665,unknown +10.526076,50.036104,unknown +11.244030,49.730286,unknown +10.533911,50.123538,unknown +10.712603,49.907221,unknown +10.892679,49.901962,unknown +10.078141,49.139363,unknown +11.245164,49.731102,unknown +11.411524,49.771412,unknown +10.044958,49.160604,unknown +10.078261,49.139316,unknown +10.985111,49.475264,unknown +10.065375,49.143855,unknown +10.543190,49.991224,unknown +11.015973,49.596921,unknown +11.006820,49.563701,unknown +9.165886,49.804975,unknown +10.339465,49.378880,unknown +10.194545,49.908981,unknown +10.905907,49.903146,unknown +10.567644,50.093910,unknown +10.198893,49.905248,unknown +9.959155,49.738770,unknown +10.877489,49.464505,unknown +10.328475,49.934971,unknown +10.199191,49.905394,unknown +10.193172,49.911920,unknown +10.987268,49.466670,unknown +11.016945,49.689617,unknown +11.326861,49.610542,unknown +11.326856,49.610508,unknown +10.816778,49.324346,unknown +10.078310,49.139442,unknown 11.083134,49.465025,offline -11.004154,51.421650,offline -10.961319,50.264737,offline -10.001220,49.723772,offline -10.990608,49.467540,offline -10.192121,49.911654,offline -11.190484,49.786816,offline -10.191877,49.907207,offline -9.941980,49.788912,offline -11.411524,49.771412,offline -9.940792,49.803358,offline -11.012132,49.574120,offline -11.091519,49.713534,offline -10.566479,50.093715,offline -11.003634,49.564394,offline -10.636718,50.152130,offline -10.989499,49.479695,offline -10.977174,49.482142,offline -9.119339,49.989220,offline -11.701909,50.327644,offline -10.895374,49.899066,offline -10.956244,49.591039,offline -10.990069,49.467614,offline -10.990034,49.478570,offline -60.831106,80.622391,offline -9.937182,49.779186,offline -11.056371,49.769906,offline -10.906020,49.903336,offline -10.072883,49.135864,offline -11.187048,49.779940,offline -10.988014,49.478489,offline -11.172860,49.409692,offline -10.982852,49.477194,offline -12.857142,47.803261,offline -10.954807,49.481858,offline -11.099845,49.456309,offline -11.173535,49.776331,offline -9.913155,49.798666,offline -10.568412,50.093444,offline -10.995525,49.481872,offline -9.165886,49.804975,offline -10.833592,49.904616,offline -12.109680,50.004267,offline -10.160722,50.536164,offline -10.528329,50.136930,offline -11.243284,50.138965,offline -11.910720,50.321210,offline -11.602325,50.060661,offline -10.976907,49.482190,offline -10.885491,49.890566,offline -10.988655,49.479046,offline -12.981503,47.841012,offline -10.963567,49.597102,offline -10.538624,50.100408,offline -11.030854,49.545464,offline -10.990109,49.469184,offline -11.910778,50.321262,offline -10.998162,49.463543,offline -11.326861,49.610542,offline -11.005508,49.594951,offline -10.982905,49.477250,offline -10.990711,49.467244,offline -10.987816,49.568979,offline -10.968478,49.566593,offline -11.002614,49.563322,offline -10.568053,50.093510,offline -10.990083,49.467561,offline -10.567957,50.093510,offline -11.053155,49.450302,offline -10.968333,49.566381,offline -10.995742,49.481875,offline -11.216290,49.808186,offline -10.989970,49.469121,offline -11.082520,49.441461,offline -9.877231,49.779214,offline -10.079806,50.197198,offline -10.998187,49.463708,offline -11.085346,50.215051,offline -10.990636,49.477537,offline -11.016945,49.689617,offline -11.120790,50.328531,offline -10.198893,49.905248,offline -10.177706,50.294012,offline -10.194545,49.908981,offline -11.062090,50.223143,offline -10.828743,49.910203,offline -11.030824,49.545381,offline -9.859084,49.656185,offline -10.998092,49.472048,offline -11.188575,49.780687,offline -10.568013,50.093556,offline -9.065016,50.057475,offline -10.543190,49.991224,offline -9.214397,49.807416,offline -10.961035,49.493602,offline -10.599444,49.921958,offline -10.515807,50.026255,offline -10.618114,49.229789,offline -10.957057,50.068699,offline -10.191718,49.912910,offline -11.043470,49.428676,offline -10.328475,49.934971,offline -11.025300,49.464601,offline -10.534344,50.124102,offline -11.186281,49.780197,offline -11.014023,49.597457,offline -11.326923,49.610629,offline -12.857250,47.803357,offline -9.065781,50.053272,offline -10.674012,50.116946,offline -11.271431,49.526014,offline -9.959155,49.738770,offline -11.021578,49.551924,offline -10.193172,49.911920,offline -11.118657,49.435127,offline -11.047525,49.722542,offline -10.974921,49.478231,offline -10.121983,49.124405,offline -11.055030,49.448210,offline -11.340734,49.604052,offline -11.081778,49.448205,offline -11.053242,49.450239,offline -11.340616,49.604171,offline -11.327049,49.198374,offline -10.995657,49.462413,offline -11.015973,49.596921,offline -11.029123,49.408339,offline -10.537984,50.100465,offline -10.567928,50.093549,offline -11.190315,49.787040,offline -9.148782,49.986895,offline -11.293773,49.459348,offline -10.982541,49.472619,offline -11.025069,49.466837,offline -10.541463,50.031815,offline -9.938368,49.780985,offline -10.192872,49.908731,offline -10.882135,49.884775,offline -11.183465,49.785296,offline -10.324799,49.934743,offline -10.997036,50.106607,offline -11.056507,49.417416,offline -11.041390,49.328435,offline -11.217100,49.808030,offline -9.065716,50.053272,offline -11.078757,50.215833,offline -10.986905,49.479970,offline -10.908479,48.959782,offline -11.187370,49.779739,offline -10.199191,49.905394,offline -10.567644,50.093910,offline -11.053807,49.772821,offline -10.712622,49.907304,offline -9.168675,49.808214,offline -11.067116,49.461506,offline -10.568437,50.092998,offline -11.028237,49.554477,offline -9.858931,49.656176,offline -10.974856,49.478258,offline -11.118749,49.435134,offline -11.054708,49.450712,offline -11.326856,49.610508,offline -10.538240,50.100541,offline -10.982487,49.472538,offline -10.984827,49.475034,offline -11.186968,49.780215,offline -10.997723,49.482648,offline -10.033736,50.132503,offline -10.988122,49.545037,offline -11.330210,49.198300,offline -9.783781,50.166318,offline -11.041360,49.653638,offline -10.966523,49.472105,offline -9.890732,50.116276,offline -10.890548,49.895099,offline -11.594020,49.917005,offline -11.107699,49.459041,offline -11.055207,49.448157,offline -11.183690,49.785292,offline -10.566721,50.093632,offline -11.047504,49.722587,offline -11.099227,49.484852,offline -11.056001,49.447751,offline -9.929069,49.789285,offline -10.885236,49.890433,offline -10.907192,49.906796,offline -10.194304,49.909319,offline -11.004320,49.580096,offline -9.166753,49.800333,offline -11.081578,49.448094,offline -10.997367,49.692809,offline -10.950612,50.268591,offline -10.080160,50.197182,offline -10.982572,49.472687,offline -10.512795,50.036745,offline -10.958331,49.473225,offline -11.903171,50.309710,offline -10.890577,49.894727,offline -10.989504,49.478872,offline -10.966847,49.472001,offline -11.186944,49.780127,offline -11.326928,49.610570,offline -10.533152,50.123749,offline -10.065297,49.143771,offline -11.248176,49.726602,offline -11.041361,49.653677,offline -11.072346,49.455030,offline -9.976659,49.810300,offline -10.958208,49.473229,offline -11.190614,49.787469,offline -12.981615,47.841185,offline -10.082632,50.194320,offline -11.089810,49.466786,offline -10.988175,49.478515,offline -10.986886,49.479674,offline -11.186340,49.780116,offline -11.327564,49.198490,offline -10.990641,49.467260,offline -11.772979,49.866977,offline -11.069763,49.466817,offline -11.026438,49.575872,offline -11.100321,49.463890,offline -11.076295,49.452284,offline -10.995493,49.638686,offline -10.998107,49.463686,offline -10.977123,49.479624,offline -10.801856,50.094259,offline -10.907235,49.906760,offline -11.060652,49.445747,offline -11.182247,49.786739,offline -11.141773,50.051097,offline -10.990623,49.467674,offline -9.927657,49.797144,offline -11.155168,49.526174,offline -11.168654,49.464552,offline -10.192155,49.908690,offline -11.188583,49.780680,offline -11.071236,49.467547,offline -11.326778,49.610537,offline -10.990064,49.544474,offline -10.963025,49.028871,offline -11.055853,49.446215,offline -11.183526,49.785386,offline -10.986921,49.479875,offline -10.988309,49.478531,offline -11.414677,49.449127,offline -10.970535,49.595417,offline -11.267260,49.504478,offline -9.878062,49.779256,offline -11.021630,49.551939,offline -10.984802,49.475135,offline -11.062468,49.423961,offline -11.701647,50.327732,offline -10.997639,49.482665,offline -11.005523,49.594917,offline -11.026213,49.575909,offline -11.022248,49.604012,offline -10.048682,49.140620,offline -9.783636,50.166289,offline -10.987428,49.814639,offline -11.141730,50.051155,offline -11.593939,49.916975,offline -10.712603,49.907221,offline -9.987125,49.776748,offline -9.927553,49.797235,offline -12.439073,49.979650,offline -10.568730,50.093639,offline -11.110572,49.470842,offline -10.887456,49.889045,offline -11.058125,49.450704,offline -11.279979,49.351159,offline -11.120265,49.480781,offline -11.054971,49.448058,offline -11.309401,49.253167,offline -11.053641,49.458285,offline -11.082675,49.441323,offline -11.102066,49.462707,online -11.240508,49.493497,offline -11.067386,49.301953,offline -11.954381,49.023804,offline -11.060536,49.444944,offline -11.060577,49.445724,offline -11.283375,49.513155,offline -11.102089,49.462664,online -11.102170,49.462784,offline -11.081888,49.448674,online -11.101679,49.462870,online -11.073559,49.451719,offline -11.066998,49.457825,online -11.156668,49.461521,offline -11.235317,49.251154,online -11.244049,49.495666,offline -11.092974,49.445546,offline -11.347238,49.560466,offline -11.240652,49.493332,online -11.053244,49.450160,offline -11.110894,49.468005,online -11.299342,49.389636,online -11.025414,49.464222,offline -11.037435,49.385283,online -11.099139,49.484793,online -11.012206,49.406205,online -11.064758,49.440888,online -11.354153,49.386207,offline -11.243831,49.495752,online -11.327320,49.198487,offline -11.347251,49.562151,offline -11.059507,49.445610,offline -11.326239,49.198173,online -11.082450,49.441592,offline -11.055854,49.446147,offline -11.056065,49.446113,offline -11.073844,49.455992,offline -11.068540,49.457040,offline -11.243985,49.495789,online -11.043218,49.417636,offline -11.082598,49.441201,offline -11.354212,49.386132,offline -11.089671,49.466812,online -11.059433,49.445555,offline -11.350556,49.390745,online -11.079649,49.454784,offline -11.327199,49.198747,online -11.075651,49.455823,online -11.071506,49.448855,offline -11.118731,49.435057,online -11.082298,49.448933,offline -11.283545,49.513014,offline -11.309416,49.253316,offline -11.002110,49.460573,offline -11.118827,49.435124,offline -11.065285,49.427181,online -11.089653,49.427901,online -11.034003,49.457036,online -11.064539,49.462205,offline -11.082807,49.460061,online -11.086712,49.459419,offline +11.595885,49.962546,unknown +8.288173,51.066162,unknown +10.723042,49.670028,unknown +9.930895,49.788710,unknown +10.179729,49.375873,unknown +11.014910,49.593670,unknown +10.525941,50.139822,unknown +10.988399,49.553703,unknown +12.876127,47.722416,offline +11.916872,50.321122,unknown +9.289469,50.014172,unknown +11.030824,49.545381,unknown +10.997723,49.482648,unknown +10.993559,49.571714,unknown +11.037655,49.436696,unknown +11.073679,49.416972,unknown +11.073677,49.416949,unknown +11.092324,49.445642,unknown +11.245609,49.496408,offline +12.856180,47.719058,offline +11.246078,49.496386,offline +11.003714,49.564817,unknown +10.989455,49.575304,unknown +10.740166,49.826703,unknown +11.133471,49.426658,online 11.326797,49.198226,online -11.283251,49.513215,offline -11.029147,49.408264,offline -11.086825,49.459502,offline -11.097184,49.454971,online -11.120020,49.343824,offline -11.326828,49.198261,offline -11.054044,49.443324,offline -11.064409,49.462178,online -11.118684,49.435194,online -11.023326,49.468447,online -11.082030,49.448728,online -11.081195,49.434659,offline -11.100011,49.463907,online -11.318294,49.525776,offline -11.088155,49.447751,online -11.929778,49.547877,online -11.082150,49.448860,offline -12.632933,49.205071,offline -11.095472,49.457008,offline -11.280714,49.513033,online -11.033664,49.456434,online -11.036178,49.440252,offline -11.055931,49.446185,offline -11.396552,49.499896,offline -11.350607,49.390785,online -11.324633,49.218486,online -11.017263,49.424453,online -11.088617,49.460800,online -11.077228,49.457249,online -11.028857,49.442780,online -11.353858,49.385904,offline -11.117064,49.402509,offline -11.327210,49.198556,offline -11.060746,49.445249,online -11.929843,49.547945,online -11.029045,49.408248,offline -11.068350,49.457076,offline -11.053088,49.450201,online -11.309635,49.253179,offline -11.055833,49.446180,offline -11.119873,49.481018,offline -11.074909,49.455831,online -11.076404,49.456716,online -11.104184,49.460319,online -11.088357,49.424753,offline -11.069930,49.466918,offline -11.861527,49.446168,online -11.060834,49.445703,online -11.092458,49.442658,online -11.033453,49.456213,online -11.072188,49.455098,online -11.309507,49.253117,online -11.060909,49.465239,online -11.242506,49.500826,online -11.242560,49.500782,online -11.056377,49.418784,online -11.267096,49.504519,online -11.243966,49.495742,online -11.242362,49.500843,online -11.060809,49.445722,online -11.075663,49.455889,online -11.025064,49.466931,online +11.353858,49.385904,online +11.082520,49.441461,online +11.097160,49.454873,online +11.082675,49.441323,online +11.133572,49.426172,online +11.055854,49.446147,online 11.242584,49.500867,online -11.029383,49.461221,online +11.099227,49.484852,online 11.929869,49.547872,online -11.094657,49.461735,online +11.133227,49.426560,online +11.082450,49.441592,online +11.099139,49.484793,online +11.076295,49.452284,online 11.235197,49.251260,online +11.071506,49.448855,online +11.326239,49.198173,online +11.056065,49.446113,online +11.235317,49.251154,online +11.324633,49.218486,online +11.068350,49.457076,online +11.269548,49.522464,online +11.299342,49.389636,online +11.327320,49.198487,online +11.350607,49.390785,online +11.055931,49.446185,online +11.117064,49.402509,online +11.110572,49.470842,online +11.309507,49.253117,online +11.240652,49.493332,online +11.118684,49.435194,online +11.327199,49.198747,online +11.060577,49.445724,online +11.104184,49.460319,online +11.055833,49.446180,online +11.060834,49.445703,online +11.081578,49.448094,online +11.055207,49.448157,online +11.064758,49.440888,online +11.326828,49.198261,online +11.242362,49.500843,online +11.056377,49.418784,online +11.072188,49.455098,online +11.092458,49.442658,online +11.059507,49.445610,online +11.075663,49.455889,online +11.327049,49.198374,online +11.062468,49.423961,online +11.243831,49.495752,online +11.327210,49.198556,online +11.043218,49.417636,online +11.075651,49.455823,online +11.068540,49.457040,online +11.327564,49.198490,online +11.053244,49.450160,online +11.120020,49.343824,online +11.012206,49.406205,online +11.350556,49.390745,online +11.082598,49.441201,online +11.082150,49.448860,online +11.054044,49.443324,online +12.632933,49.205071,online +11.102170,49.462784,online +11.280714,49.513033,online +11.029123,49.408339,online +11.060652,49.445747,online +11.330210,49.198300,online +11.072346,49.455030,online +11.243985,49.495789,online +11.060809,49.445722,online +11.060536,49.444944,online +11.954381,49.023804,online +11.089671,49.466812,online +11.036178,49.440252,online +11.028857,49.442780,online +11.088155,49.447751,online +11.055030,49.448210,online +9.987125,49.776748,unknown +11.772979,49.866977,unknown +11.092974,49.445546,online +11.026438,49.575872,unknown +10.324799,49.934743,unknown +10.550256,49.997336,unknown +10.990623,49.467674,unknown +11.186944,49.780127,unknown +10.963025,49.028871,unknown +10.970535,49.595417,unknown +10.033736,50.132503,unknown +11.326928,49.610570,unknown +10.078316,49.139407,unknown +10.990064,49.544474,unknown +11.248176,49.726602,unknown +11.903171,50.309710,unknown +10.048682,49.140620,unknown +11.089810,49.466786,online +11.326778,49.610537,unknown +10.071169,49.134855,unknown +11.059433,49.445555,online +10.191877,49.907207,unknown +11.267260,49.504478,online +11.094657,49.461735,online +11.017800,49.576788,unknown +10.192802,49.909959,unknown +11.089653,49.427901,online +10.534915,50.121802,unknown +11.026213,49.575909,unknown +11.065285,49.427181,online +10.223230,49.989780,unknown +11.091519,49.713534,unknown +11.309416,49.253316,online +11.322812,50.239167,unknown +10.568912,50.093722,unknown +11.283251,49.513215,online +10.528329,50.136930,unknown +10.998162,49.463543,unknown +10.976907,49.482190,unknown +11.100011,49.463907,online +11.319469,49.681528,unknown +10.572866,50.091244,unknown +10.788976,49.286827,unknown +10.990711,49.467244,unknown +10.989276,49.566912,unknown +10.990716,49.467650,unknown +10.990608,49.467540,unknown +11.057449,49.462101,offline +10.567589,50.094060,unknown +10.892687,49.901887,unknown +10.907294,49.906703,unknown +9.193202,50.000939,unknown +10.339680,49.378894,unknown +9.995584,50.057466,unknown +11.060126,49.445556,unknown +11.065566,49.699955,unknown +10.990083,49.469132,unknown +11.025030,49.466839,unknown +10.163241,49.802646,unknown +10.981472,49.477669,unknown +10.905282,49.907504,unknown +9.942015,49.788808,unknown +10.194905,49.905280,unknown +10.968894,49.590113,unknown +11.324643,49.218469,offline +10.987932,49.478456,unknown +9.934473,49.787581,unknown +10.833539,49.904606,unknown +10.073122,49.664114,unknown +9.985239,49.778779,unknown +11.082030,49.448728,online +11.081778,49.448205,online +10.472674,49.283344,unknown +10.033698,50.132557,unknown +10.523081,50.138232,unknown +11.126017,49.604629,unknown +10.522011,50.137372,unknown +10.906055,49.903305,unknown +10.882714,49.567824,unknown +10.417507,49.501351,unknown +11.319550,49.681526,unknown +9.065781,50.053272,unknown +9.979234,49.980904,unknown +11.006825,49.563611,unknown +10.905824,49.903251,unknown +10.905996,49.903130,unknown +10.990662,49.466925,unknown +9.252983,49.708099,unknown +11.001973,49.599761,unknown +11.004154,51.421650,unknown +11.396552,49.499896,online +11.088357,49.424753,online +11.095472,49.457008,online +11.242506,49.500826,online +11.244049,49.495666,online +11.414677,49.449127,online +11.006354,49.589782,unknown +11.086825,49.459502,online +11.309635,49.253179,online +11.017263,49.424453,online +11.119873,49.481018,online +11.107699,49.459041,online +11.056001,49.447751,online +11.120265,49.480781,online +11.074909,49.455831,online +11.073844,49.455992,online +9.933486,49.789724,unknown +9.911240,49.793022,unknown +9.911216,49.793065,unknown +11.092141,49.442505,unknown +11.094171,50.289788,unknown +11.006825,49.589743,unknown +11.006780,49.589737,unknown +11.069930,49.466918,offline +11.003676,49.607975,unknown +11.245409,49.496466,offline +11.245785,49.496359,offline +11.246137,49.496275,offline +11.246003,49.496502,offline +9.063665,50.000543,unknown +11.318294,49.525776,online +10.981525,49.477825,unknown +11.030854,49.545464,unknown +11.071236,49.467547,online +11.076404,49.456716,online +11.861527,49.446168,online +11.156668,49.461521,online +11.079649,49.454784,online +11.041390,49.328435,online +11.293773,49.459348,online +11.347251,49.562151,online +11.186968,49.780215,unknown +12.875285,47.726267,offline +11.155168,49.526174,online +11.053641,49.458285,online +11.347238,49.560466,online +11.086712,49.459419,online +11.002459,49.458602,unknown +11.080995,49.441029,offline +10.961185,49.599378,unknown +10.835110,49.904612,unknown +10.968597,49.436239,unknown +11.354212,49.386132,online +11.033664,49.456434,online +11.033453,49.456213,online +11.052335,49.450259,online +11.283375,49.513155,online +11.054913,49.451880,online +11.118827,49.435124,online +11.133547,49.426473,online +11.053242,49.450239,online +11.118731,49.435057,online +11.354153,49.386207,online +11.082298,49.448933,online +11.055853,49.446215,online +11.097184,49.454971,online +11.037435,49.385283,online diff --git a/map/mkcsv.py b/map/mkcsv.py index a5faefb..c5ef5a3 100755 --- a/map/mkcsv.py +++ b/map/mkcsv.py @@ -8,34 +8,22 @@ routers = db.routers with open("csv/routers.csv", "w") as csv: csv.write("lng,lat,status\n") - for router in routers.find({ - "position.lat": {"$exists": True}, - "position.lng": {"$exists": True}}): + for router in routers.find({"position.coordinates": {"$exists": True}}): csv.write("%f,%f,%s\n" % ( - router["position"]["lng"], - router["position"]["lat"], + router["position"]["coordinates"][0], + router["position"]["coordinates"][1], router.get("status", "unknown") )) with open("csv/links.csv", "w") as csv: csv.write("WKT,quality\n") - for router in routers.find({ - "position.lat": {"$exists": True}, - "position.lng": {"$exists": True}, - "neighbours": {"$exists": True}}): + for router in routers.find({"position.coordinates": {"$exists": True}, "neighbours": {"$exists": True}}): for neighbour in router["neighbours"]: - if not "_id" in neighbour: - continue - neighbour_router = routers.find_one({ - "_id": neighbour["_id"], - "position.lat": {"$exists": True}, - "position.lng": {"$exists": True} - }) - if neighbour_router: + if "position" in neighbour: csv.write("\"LINESTRING (%f %f,%f %f)\",%i\n" % ( - router["position"]["lng"], - router["position"]["lat"], - neighbour_router["position"]["lng"], - neighbour_router["position"]["lat"], + router["position"]["coordinates"][0], + router["position"]["coordinates"][1], + neighbour["position"]["coordinates"][0], + neighbour["position"]["coordinates"][1], neighbour["quality"] )) diff --git a/map/static/map.html b/map/static/map.html index 67d6c40..092132a 100644 --- a/map/static/map.html +++ b/map/static/map.html @@ -14,4 +14,23 @@ var routers = new L.TileLayer('http://localhost:8001/{z}/{x}/{y}.png', {maxNativ layersControl = new L.Control.Layers({}, {"links": links, "routers": routers}); map.addControl(layersControl); //var marker = L.marker([49.47502, 10.99253]).addTo(map); + +map.on('click', function(e) { + console.log(e.latlng); + console.log(map.getZoom()); + // height = width of world in px + size_of_world_in_px = map.options.crs.scale(map.getZoom()); + deg_lng_per_pix = 360 / size_of_world_in_px; + deg_lat_per_pix = 180 / size_of_world_in_px; + /* + db.routers.create_index([("location", "2dsphere")]) + 49,11 + 50,12 + -> difference 1,1 + -> in pix at zoom level 0 1.4,0.7 + -> pythagoras -> distance in px + */ +}); + + </script>