summaryrefslogtreecommitdiffstats
path: root/store.py
diff options
context:
space:
mode:
Diffstat (limited to 'store.py')
-rw-r--r--store.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/store.py b/store.py
index 3d91f5b..e03ae77 100644
--- a/store.py
+++ b/store.py
@@ -6,22 +6,45 @@ class Node:
self.id = id
self.lat = float(lat)
self.lng = float(lng)
+ self.neighbors = []
+
def coord_tuple(self):
return self.lat, self.lng
parser = None # Have a global reusable parser object
+nodes = None
+
+
+def add_neighbours(nodes):
+ for way in parser.iter_ways():
+ if 'highway' not in way['tags']:
+ continue
+
+ road = way['road']
+
+ for i in range(len(road) - 1):
+ node1 = road[i]
+ node2 = road[i + 1]
+
+ nodes[node1].neighbors.append(nodes[node2])
+ nodes[node2].neighbors.append(nodes[node1])
+
+ return nodes
def extract_osm_nodes(f_name):
global parser
+ global nodes
parser = get_default_parser(f_name)
nodes = dict()
for node in parser.iter_nodes():
nodes[node['id']] = Node(node['id'], node['lat'], node['lon'])
+ add_neighbours(nodes)
+
return nodes