【问题标题】:Shortest route with no set destination in Google Maps V3?Google Maps V3 中没有设定目的地的最短路线?
【发布时间】:2010-10-27 22:50:40
【问题描述】:

所以我只是在学习 javascript 来处理 Google Maps API。我想知道是否有人对我遇到的这个问题有一个优雅的解决方案。

Google Maps 路线请求必须包含三项内容(起点、目的地和 travelMode)。我的 travelMode 将始终处于驾驶状态。来源始终是用户所在的任何地方。

不过,目的地需要有所不同。我有几个航点,用户将访问,并希望根据选择的航点和用户的位置提供最短的行程,在其中一个航点结束路线(例如:ABC 或 ACB,但总是 Axx. ..x)。

除了计算每条可能的路径并查看哪条路径最短(或时间,或我正在评估的任何内容)之外,还有其他可能的方法吗?看起来这会非常昂贵(O(n!))。

编辑:将建议的 optimizeWaypoints 标志设置为 true,这将成为 O(n) 问题而不是 O(n!),但现在我遇到了在太短的时间内发出太多请求的问题。

【问题讨论】:

    标签: javascript google-maps shortest-path driving-directions


    【解决方案1】:

    在 google 路线中有一个设置可以提供优化路线(optimizeWaypoints - http://code.google.com/apis/maps/documentation/javascript/services.html#Directions),您只需在路线对象中将其设置为 true

    【讨论】:

    • 我已经做到了,但我仍然不得不设置一个目的地。我不能只将其设置为 true 并将请求提供给我所有的航点。我现在正在做的是简单地为 n 个航路点创建 n 条路线,将请求 A 作为起点,将 b-n 作为目的地,所有航路点减去每条路线的目的地。这给了我一条可以计算距离的路线,现在要做一些繁重的测试,看看这是否适用于任何数量可观的航点。
    • 好吧,我最终使用的解决方案是基于这个答案,所以它得到了复选标记。我现在拥有的是我的航路点以及一些非常远的位置。我在请求中发送了所有航点,让 Google 为这些航点找到从我的起始位置到遥远目的地的最佳路线,然后将新订购的航点取出。然后我将最终航路点设置为新目的地,并使用现在包含少一个航路点的航路点集发出另一个请求。这给了我我想要的路线。
    • 我也有同样的问题,需要和其他点一起计算出最佳目的地。我喜欢你的解决方案。谢谢。
    • @Crag 遥远目的地的位置不会影响第一个请求中返回航点的顺序吗?例如。如果遥远的目的地在南方,那么最后一个航路点不是最南端的吗?
    • 我只是想把我的 2 美分加到这个讨论中。我面临着类似的情况,我正在考虑首先使用距离矩阵 API 来评估离我的原点最远的路点。我认为它可能是设置为目的地的最佳候选者,因此所有其他航路点都可以完美地融入起点和最远航路点。希望这对我有用。
    【解决方案2】:

    如果您想要最短路线,您可以先调用 Google distanceMatrix API 并获取停靠点的排序列表。

    然后使用排序列表调用 API 方向。

    【讨论】:

      【解决方案3】:

      一个简单的解决方案是将起点和终点指定为相同,并要求 Google 地图根据所有其他航点优化路线。它通常要么先到最远点,要么最后再回到原点。然后,您可以在不进行优化的情况下发出另一个请求,这次将 Destination 指定为最后优化的航路点。

      【讨论】:

        猜你喜欢
        • 2013-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        相关资源
        最近更新 更多