如何向使用nx.shortest\u path创建的路由添加点?

2024-10-02 04:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

从一个点(startPoint),我在图中找到最近的节点(closestPoint)。然后创建到随机点(端点)的最短路径。有时路由包含startPoint,有时不包含,具体取决于closestNode。如果包含,我希望路由从startPoint开始,以endPoint结束。如果没有,我希望它以closestPoint开始,以endPoint结束。我该怎么做

我试图将startNode附加到路由,然后绘制它,但没有成功

G = ox.graph_from_point(startPoint, distance=distance)

nodes, _ = ox.graph_to_gdfs(G)

tree = KDTree(nodes[['y', 'x']], metric='euclidean')
latlon = getLatLonFromPoint(aPoint)
node_idx = tree.query([latlon], k=1, return_distance=False)[0]

theNode = nodes.iloc[node_idx].index.values[0]
startNode = theNode

endNode = np.random.choice(G.nodes)

route = nx.shortest_path(G, startNode, endNode)

m = ox.plot_route_folium(G, route, route_color='green',popup_attribute='length')
display(m)

Tags: nodetree路由routelatlonendpointgraphdistance

热门问题