【问题标题】:Route planner with multiple waypoints considering trafic with Google Maps使用 Google Maps 考虑交通的具有多个航点的路线规划器
【发布时间】:2019-01-12 09:18:54
【问题描述】:

希望这个问题是有意义的。 我正在与 Ionic 应用程序的程序员合作,该应用程序使用 Google Maps API 允许用户创建具有多个航点的自定义路线。

这是一个路线规划器应用程序。

有一个“优化我的路线”按钮,用于检查您输入航点的顺序是否是在旅途中节省时间的最佳方式。如果没有,它会重新安排您的路线,以确保您不会浪费时间。

我要求我的程序员确保在您按下“优化我的路线”按钮时考虑到交通数据,但他说这是不可能的,基于此 API 文档:

https://developers.google.com/maps/documentation/directions/intro#DirectionsAdvanced

他说它只能在考虑正常行程时间的情况下优化路线,没有交通信息。

我相信他,但我很难相信使用 Google Maps API 优化路线时考虑到交通信息是不可能的。

有什么想法或例子可以帮助我吗?

非常感谢!

编辑:

文档中似乎无法实现的部分是:

Traffic information is used when all of the following apply :
-...
-...
-The request does not include stopover waypoints. If the request includes waypoints, prefix each waypoint with via: to influence the route but avoid stopovers.

该应用程序使用中途停留航点来允许用户创建路线。有什么解决方法吗? “Via”似乎是一个不错的选择,但不允许用户告诉应用他在特定活动中停留了多长时间。

谢谢

【问题讨论】:

    标签: javascript google-maps ionic-framework google-maps-api-3


    【解决方案1】:

    我相信您的开发人员是完全正确的。考虑到 Directions API 中的当前交通状况,无法优化路线。如果我们查看文档,我们可以看到以下关于优化的声明

    默认情况下,路线服务会按给定顺序计算通过提供的航点的路线。或者,您可以将 optimize:true 作为航点参数中的第一个参数传递,以允许方向服务通过以更有效的顺序重新排列航点来优化提供的路线。 (此优化是旅行推销员问题的应用。)旅行时间是优化的主要因素,但在决定哪条路线最有效时,可能会考虑其他因素,例如距离、转弯次数等。 所有航路点都必须是路线服务的中途停留地,以优化其路线。

    来源:https://developers.google.com/maps/documentation/directions/intro#OptimizeWaypoints

    另一方面,如果您在文档的交通部分检查持续时间,则说明

    在满足以下所有条件时使用交通信息(这些是接收路线响应中的 duration_in_traffic 字段所需的条件):

    • 出行模式参数为驾驶,或未指定(驾驶是默认出行模式)。
    • 请求包含有效的离开时间参数。出发时间可以设置为当前时间或未来某个时间。不可能是过去。
    • 请求不包括中途停留航路点。如果请求包括航路点,请在每个航路点前加上 via: 以影响路线但避免中途停留。

    来源:https://developers.google.com/maps/documentation/directions/intro#DirectionsAdvanced

    注意用粗体标记的句子。遗憾的是,交通信息不允许进行路线优化所需的中途停留。

    【讨论】:

    • 非常感谢!说得通。将路线的每个点视为简单的“A 到 B”路线,检查交通并返回交通行程时间怎么样?对 B 到 C 执行相同操作,依此类推。在你看来,这有意义吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    相关资源
    最近更新 更多