OSMNx包最短路径查找的底层算法是什么?是否采用Dijkstra算法?
OSMnx shortest_path 算法说明
OSMnx的
shortest_path函数是对NetworkX路径查找能力的封装,它会根据图的边权重特性自动适配算法:- 当指定
weight="length"这类非负权重时,它会调用NetworkX的shortest_path实现,也就是使用Dijkstra算法,和你提到的NetworkX示例逻辑一致; - 若图中存在负权重边(实际OSM地图数据基本不会出现这种情况),则会自动切换为Bellman-Ford算法。
- 当指定
你给出的示例代码
route = ox.shortest_path(G, orig, dest, weight="length"),因为length属性都是非负的距离值,所以该调用确实会使用Dijkstra算法来查找最短路径。
内容的提问来源于stack exchange,提问作者RB10
相关产品推荐
相关产品推荐

