diff options
| author | Max Bringemo <maxbr167@student.liu.se> | 2020-12-14 21:08:59 +0100 |
|---|---|---|
| committer | Stefan Hansson <steha708@student.liu.se> | 2020-12-14 21:08:59 +0100 |
| commit | 325f2078c37bc073fff964946a2ce643d181fa3d (patch) | |
| tree | ba07a6e94989ef44335619f1547e521280461a61 /store.py | |
| parent | 542aa50ad4bae5e719bcffc9265a15824a444284 (diff) | |
| download | tdde25-325f2078c37bc073fff964946a2ce643d181fa3d.tar.gz | |
Grid search
Diffstat (limited to 'store.py')
| -rw-r--r-- | store.py | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -1,4 +1,5 @@ from osm_parser import get_default_parser +from collections import defaultdict class Node: @@ -36,18 +37,32 @@ 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) - # remove nodes without neighbours + # remove nodes without neighbours. for node_id, node in nodes.copy().items(): if not node.neighbours: del nodes[node_id] - return nodes + # 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 def select_nodes_in_rectangle(nodes, min_lat, max_lat, min_long, max_long): |
