areas with no nodes inside should have more than one external node assigned
This commit is contained in:
parent
b2f36a564b
commit
c110ee9174
1 changed files with 4 additions and 3 deletions
|
@ -116,8 +116,10 @@ class Router:
|
||||||
for node in area_nodes:
|
for node in area_nodes:
|
||||||
node.areas.add(area.pk)
|
node.areas.add(area.pk)
|
||||||
if not area.nodes and space_nodes:
|
if not area.nodes and space_nodes:
|
||||||
nearest_node = min(space_nodes, key=lambda node: area.geometry.distance(node.point))
|
area.nodes = [node.i for node in space_nodes if area.geometry.distance(node.point) < 3]
|
||||||
area.nodes.add(nearest_node.i)
|
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
|
areas[area.pk] = area
|
||||||
space.areas.add(area.pk)
|
space.areas.add(area.pk)
|
||||||
|
|
||||||
|
@ -427,7 +429,6 @@ class Router:
|
||||||
graph[restrictions.edges.transpose().tolist()] = np.inf
|
graph[restrictions.edges.transpose().tolist()] = np.inf
|
||||||
|
|
||||||
distances, predecessors = shortest_path(graph, directed=True, return_predecessors=True)
|
distances, predecessors = shortest_path(graph, directed=True, return_predecessors=True)
|
||||||
print(distances.dtype, predecessors.dtype)
|
|
||||||
cache.set(cache_key, (distances.astype(np.float64).tobytes(),
|
cache.set(cache_key, (distances.astype(np.float64).tobytes(),
|
||||||
predecessors.astype(np.int32).tobytes()), 600)
|
predecessors.astype(np.int32).tobytes()), 600)
|
||||||
return distances, predecessors
|
return distances, predecessors
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue