diff options
Diffstat (limited to 'store.py')
| -rw-r--r-- | store.py | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -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): |
