我想使用 NetworKX 和 OSMnx 在起点和终点之间生成一条路线。
起点是绿点,黑点是目的地。
我的想法是找到原点到第一个蓝色圆圈,从第一个到第二个等之间的最短路径。但我不知道如何让程序决定哪个是第一个蓝色圆圈。
我想计算每个蓝色圆圈到原点之间的路线,但在很多蓝色圆圈的情况下,它可能需要大量计算。关于如何选择第一个或重建起点和目的地之间的轨迹的任何想法?
您可以使用 OSMnx 计算您的原点和每个蓝点之间的矢量化大圆距离,然后将最近的作为第一个通过:https ://osmnx.readthedocs.io/en/stable/osmnx.html #osmnx.utils.great_circle_vec
这提供了最接近您的原点的粗略近似值,而无需对所有最短路径进行昂贵的计算。或者,如果这些蓝点带有时间戳,您可以按时间戳对它们进行排序,然后相应地计算通过它们的路线。