diff options
Diffstat (limited to 'server.py')
| -rw-r--r-- | server.py | 46 |
1 files changed, 14 insertions, 32 deletions
@@ -8,28 +8,17 @@ grids = None nodes = None unconnected_nodes = None + @get('/') def index(): global nodes global grids global unconnected_nodes - nodes, grids, unconnected_nodes = store.extract_osm_nodes("linkoping.osm") return read_html('templates/index.html') -@get('/show-area') -def show_area(): - rect = dict() - # FIXME: Don't hardcode bikes maybe? Maybe just remove this altogether - for (k, node) in enumerate( - store.select_nodes_in_rectangle(nodes['bike'], 58.3984, 58.3990, - 15.5733, 15.576)): - rect[node.id] = node.coord_tuple() - return json.dumps(rect) - - @get('/favicon.ico') def favicon(): with open("data/favicon.ico", "rb") as image: @@ -39,34 +28,27 @@ def favicon(): return image_bytes -@get('/show-unconnected-nodes') -def show_unconnected_nodes(): - print(f"Showing {len(unconnected_nodes)} unconnected nodes") - return json.dumps({ - node.id: node.coord_tuple() for node in unconnected_nodes['bike'] - }) - - @post('/shortest-path') def shortest_path(body): body = json.loads(body) - transport_mode = body['transport_mode'] + transport_mode = body['transport_mode'] relevant_grid = grids[transport_mode] + relevant_nodes = nodes[transport_mode] source_id = algorithms.grid_search(relevant_grid, - store.Node(-1, body['lat1'], - body['lng1'])) + body['lat1'], + body['lng1']) target_id = algorithms.grid_search(relevant_grid, - store.Node(-1, body['lat2'], - body['lng2'])) - - relevant_nodes = nodes[transport_mode] - - path = algorithms.find_shortest_path(nodes[transport_mode], source_id, target_id) - response = {"path": [(relevant_nodes[node].lat, relevant_nodes[node].lng) for node in path]} - - return json.dumps(response) + body['lat2'], + body['lng2']) + + path = algorithms.find_shortest_path(nodes[transport_mode], + source_id, + target_id) + return json.dumps({"path": [(relevant_nodes[node].lat, + relevant_nodes[node].lng) + for node in path]}) run_server() |
