【问题标题】:How could I compute a map route that goes from a starting point to a destination through optional waypoints?我如何计算通过可选航点从起点到目的地的地图路线?
【发布时间】:2016-04-19 05:35:04
【问题描述】:

假设我想绘制一条从旧金山到纽约的导航路线。大约有一千种服务可以免费完成这项工作。还有许多服务可以解决旅行商问题并计算通过 6 个城市的路线,找出最佳顺序。这些都是已解决的问题。

现在假设我想绘制一条从旧金山到纽约的路线,沿途在数据库中的电动汽车充电器处停留。

这比一堆航路点更难,因为我不需要在每个航点都停下来。我只需要限制我的路线从一个跳到下一个。

我该如何解决这个问题?有没有一种算法可以用来简化这个?或者也许我可以使用 OSRM (https://github.com/Project-OSRM/osrm-backend) 以某种方式帮助我,而不是依赖公共 API。我们可以强行执行此操作并继续计算路线,直到找到可行的最短路线,但我可以看到它很快就会分崩离析。

【问题讨论】:

  • 从每个航点计算到下一个点的距离,如果距离大于当前充电,则为最近的充电器动态添加新航点...
  • 这是我的第一个想法,但有时您必须沿着通常不会走的路线绕道而行。我认为仅搜索最近的充电器并不适用于所有情况,尤其是在附近没有充电器的情况下。
  • 目前还不清楚有多少这些“可选”航路点实际上是必要的:您给出了一个上限(“我不需要在每个航点都停下来”)但没有下限。那么为什么不全部跳过呢?毕竟,它们是可选的。
  • 嗯,实际的定义要复杂得多,它不仅仅是距离或数字,而是受海拔、速度、车辆重量等影响。一组情况可能需要一条路线,每条腿可以是 250 英里,而另一种情况可能要求每条腿只能长 80 英里(因此可能没有有效的路线)。
  • 嗯,那些实际的定义,或者它们的一些简单近似,需要在你的问题中,否则我的琐碎答案就可以回答!

标签: algorithm google-maps osrm


【解决方案1】:

构造一个有向图。航路点是节点,如果距离可以被充满电的汽车覆盖,则将有向加权边从航路点 A 放置到航路点 B。然后你需要在加权有向图中找到最短路径。

【讨论】:

  • 这非常有帮助。我想我可以使用有向图库来帮助构建图,使用路线所需的能量计算权重,然后找到使用最少能量的路径。
猜你喜欢
  • 1970-01-01
  • 2018-12-12
  • 2020-02-19
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多