show node_addition in route
This commit is contained in:
parent
b92c871bc2
commit
06bd8967c8
2 changed files with 24 additions and 7 deletions
|
@ -18,21 +18,33 @@ def describe_location(location, locations):
|
|||
|
||||
|
||||
class Route:
|
||||
def __init__(self, router, origin, destination, distance, path_nodes):
|
||||
def __init__(self, router, origin, destination, distance, path_nodes, origin_addition, destination_addition):
|
||||
self.router = router
|
||||
self.origin = origin
|
||||
self.destination = destination
|
||||
self.distance = distance
|
||||
self.path_nodes = path_nodes
|
||||
self.origin_addition = origin_addition
|
||||
self.destination_addition = destination_addition
|
||||
|
||||
def serialize(self, locations):
|
||||
nodes = [[node, None] for node in self.path_nodes]
|
||||
if self.origin_addition:
|
||||
nodes.insert(0, (self.origin_addition[0], None))
|
||||
nodes[1][1] = self.origin_addition[1]
|
||||
if self.destination_addition:
|
||||
nodes.append(self.destination_addition)
|
||||
|
||||
items = deque()
|
||||
last_node = None
|
||||
last_item = None
|
||||
distance = 0
|
||||
for i, node in enumerate(self.path_nodes):
|
||||
edge = self.router.edges[last_node, node] if last_node else None
|
||||
item = RouteItem(self, self.router.nodes[node], edge, last_item)
|
||||
for i, (node, edge) in enumerate(nodes):
|
||||
if edge is None:
|
||||
print(i)
|
||||
edge = self.router.edges[last_node, node] if last_node else None
|
||||
node_obj = self.router.nodes[node] if isinstance(node, (int, np.int32, np.int64)) else node
|
||||
item = RouteItem(self, node_obj, edge, last_item)
|
||||
if edge:
|
||||
distance += edge.distance
|
||||
items.append(item)
|
||||
|
|
|
@ -267,7 +267,12 @@ class Router:
|
|||
path_nodes.appendleft(last_node)
|
||||
path_nodes = tuple(path_nodes)
|
||||
|
||||
return Route(self, origin, destination, distances[origin_node, destination_node], path_nodes)
|
||||
origin_addition = origin.nodes_addition.get(origin_node)
|
||||
destination_addition = destination.nodes_addition.get(destination_node)
|
||||
print(origin_addition, destination_addition)
|
||||
|
||||
return Route(self, origin, destination, distances[origin_node, destination_node], path_nodes,
|
||||
origin_addition, destination_addition)
|
||||
|
||||
|
||||
class BaseRouterProxy:
|
||||
|
@ -350,11 +355,11 @@ class RouterAltitudeArea:
|
|||
node = all_nodes[node]
|
||||
line = LineString([(node.x, node.y), (point.x, point.y)])
|
||||
if line.length < 5 and not self.clear_geometry_prep.crosses(line):
|
||||
nodes[node.i] = None
|
||||
nodes[node.i] = (None, None)
|
||||
if not nodes:
|
||||
nearest_node = min(tuple(all_nodes[node] for node in self.nodes),
|
||||
key=lambda node: point.distance(node.point))
|
||||
nodes[nearest_node.i] = None
|
||||
nodes[nearest_node.i] = (None, None)
|
||||
else:
|
||||
nodes = self.fallback_nodes
|
||||
return nodes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue