From 5a25e55b0fd59a032c4c85af452bd433427c3890 Mon Sep 17 00:00:00 2001 From: Max Bringemo Date: Mon, 2 Nov 2020 15:54:52 +0100 Subject: finished introductory phase --- store.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'store.py') diff --git a/store.py b/store.py index e69de29..3d91f5b 100644 --- a/store.py +++ b/store.py @@ -0,0 +1,32 @@ +from osm_parser import get_default_parser + + +class Node: + def __init__(self, id, lat, lng): + self.id = id + self.lat = float(lat) + self.lng = float(lng) + + def coord_tuple(self): + return self.lat, self.lng + + +parser = None # Have a global reusable parser object + + +def extract_osm_nodes(f_name): + global parser + parser = get_default_parser(f_name) + nodes = dict() + + for node in parser.iter_nodes(): + nodes[node['id']] = Node(node['id'], node['lat'], node['lon']) + + return nodes + + +def select_nodes_in_rectangle(nodes, min_lat, max_lat, min_long, max_long): + return [node for node in nodes.values() + if min_lat <= node.lat <= max_lat + and min_long <= node.lng <= max_long] + -- cgit v1.2.1