【发布时间】:2016-04-19 05:35:04
【问题描述】:
假设我想绘制一条从旧金山到纽约的导航路线。大约有一千种服务可以免费完成这项工作。还有许多服务可以解决旅行商问题并计算通过 6 个城市的路线,找出最佳顺序。这些都是已解决的问题。
现在假设我想绘制一条从旧金山到纽约的路线,沿途在数据库中的电动汽车充电器处停留。
这比一堆航路点更难,因为我不需要在每个航点都停下来。我只需要限制我的路线从一个跳到下一个。
我该如何解决这个问题?有没有一种算法可以用来简化这个?或者也许我可以使用 OSRM (https://github.com/Project-OSRM/osrm-backend) 以某种方式帮助我,而不是依赖公共 API。我们可以强行执行此操作并继续计算路线,直到找到可行的最短路线,但我可以看到它很快就会分崩离析。
【问题讨论】:
-
从每个航点计算到下一个点的距离,如果距离大于当前充电,则为最近的充电器动态添加新航点...
-
这是我的第一个想法,但有时您必须沿着通常不会走的路线绕道而行。我认为仅搜索最近的充电器并不适用于所有情况,尤其是在附近没有充电器的情况下。
-
目前还不清楚有多少这些“可选”航路点实际上是必要的:您给出了一个上限(“我不需要在每个航点都停下来”)但没有下限。那么为什么不全部跳过呢?毕竟,它们是可选的。
-
嗯,实际的定义要复杂得多,它不仅仅是距离或数字,而是受海拔、速度、车辆重量等影响。一组情况可能需要一条路线,每条腿可以是 250 英里,而另一种情况可能要求每条腿只能长 80 英里(因此可能没有有效的路线)。
-
嗯,那些实际的定义,或者它们的一些简单近似,需要在你的问题中,否则我的琐碎答案就可以回答!
标签: algorithm google-maps osrm