From c110ee917423cfd061ca87784b04dd90f5a0620d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Mon, 23 Dec 2019 18:27:33 +0100 Subject: [PATCH] areas with no nodes inside should have more than one external node assigned --- src/c3nav/routing/router.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/c3nav/routing/router.py b/src/c3nav/routing/router.py index ff295152..5db9c83a 100644 --- a/src/c3nav/routing/router.py +++ b/src/c3nav/routing/router.py @@ -116,8 +116,10 @@ class Router: for node in area_nodes: node.areas.add(area.pk) if not area.nodes and space_nodes: - nearest_node = min(space_nodes, key=lambda node: area.geometry.distance(node.point)) - area.nodes.add(nearest_node.i) + area.nodes = [node.i for node in space_nodes if area.geometry.distance(node.point) < 3] + if not area.nodes: + nearest_node = min(space_nodes, key=lambda node: area.geometry.distance(node.point)) + area.nodes.add(nearest_node.i) areas[area.pk] = area space.areas.add(area.pk) @@ -427,7 +429,6 @@ class Router: graph[restrictions.edges.transpose().tolist()] = np.inf distances, predecessors = shortest_path(graph, directed=True, return_predecessors=True) - print(distances.dtype, predecessors.dtype) cache.set(cache_key, (distances.astype(np.float64).tobytes(), predecessors.astype(np.int32).tobytes()), 600) return distances, predecessors