summaryrefslogtreecommitdiffstats
path: root/store.py
diff options
context:
space:
mode:
Diffstat (limited to 'store.py')
-rw-r--r--store.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/store.py b/store.py
index d0e1cff..c988e47 100644
--- a/store.py
+++ b/store.py
@@ -68,9 +68,11 @@ def extract_osm_nodes(f_name):
global parser
parser = get_default_parser(f_name)
nodes = dict()
+ grid = defaultdict()
for node in parser.iter_nodes():
- nodes[node['id']] = Node(node['id'], node['lat'], node['lon'])
+ new_node = Node(node['id'], node['lat'], node['lon'])
+ nodes[node['id']] = new_node
add_neighbours(nodes)
@@ -109,7 +111,20 @@ def extract_osm_nodes(f_name):
if node.find_root().id != best_root:
unconnected_nodes.append(node)
- return best_tree, unconnected_nodes
+ nodes = best_tree
+ # create a "grid" by grouping nearby nodes.
+ for node in nodes.copy().values():
+
+ key = (int(round(node.lat, 3) * 1000), int(round(node.lng, 3)
+ * 1000))
+
+ if key in grid.keys():
+ grid[key].append(node)
+
+ else:
+ grid[key] = [node]
+
+ return nodes, grid, unconnected_nodes
def select_nodes_in_rectangle(nodes, min_lat, max_lat, min_long, max_long):