0

我想使用 NetworKX 和 OSMnx 在起点和终点之间生成一条路线。

起点是绿点,黑点是目的地。

我的约束是蓝色圆圈,它们是我必须通过的位置扔它们的区域。 在此处输入图像描述

我的想法是找到原点到第一个蓝色圆圈,从第一个到第二个等之间的最短路径。但我不知道如何让程序决定哪个是第一个蓝色圆圈。

我想计算每个蓝色圆圈到原点之间的路线,但在很多蓝色圆圈的情况下,它可能需要大量计算。关于如何选择第一个或重建起点和目的地之间的轨迹的任何想法?

4

1 回答 1

0

您可以使用 OSMnx 计算您的原点和每个蓝点之间的矢量化大圆距离,然后将最近的作为第一个通过:https ://osmnx.readthedocs.io/en/stable/osmnx.html #osmnx.utils.great_circle_vec

这提供了最接近您的原点的粗略近似值,而无需对所有最短路径进行昂贵的计算。或者,如果这些蓝点带有时间戳,您可以按时间戳对它们进行排序,然后相应地计算通过它们的路线。

于 2020-01-06T20:47:15.817 回答