希望这个问题能有意义。我正在与一位Ionic应用程序的程序员合作,该应用程序使用Google Maps API允许用户创建具有多个航路点的自定义路线。
这是一款路线规划应用程序。
有一个"优化我的路线"按钮,可以检查您输入的路线点订单是否是在旅途中节省时间的最佳方式。如果没有,它会重新安排你的路线,以确保你不会浪费时间。
我要求我的程序员确保当你按下"优化我的路线"按钮时考虑到交通数据,但他说这是不可能的,基于API文档:
https://developers.google.com/maps/documentation/directions/intro#DirectionsAdvanced
他说,它只能在没有交通信息的情况下,在考虑正常出行时间的情况下优化路线。
我信任他,但我发现很难相信用谷歌地图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"似乎是一个很好的选择,但不允许用户告诉应用程序他将在特定活动中停留多久。
感谢
我相信您的开发人员是完全正确的。考虑到API方向中的当前交通状况,无法优化路线。如果我们查看文档,我们可以看到以下关于优化的声明
默认情况下,Directions服务按给定顺序计算通过所提供的航路点的路线。或者,您可以将optimize:true作为路点参数中的第一个参数,以允许Directions服务通过以更有效的顺序重新排列路点来优化所提供的路线。(这种优化是旅行销售人员问题的一个应用。(旅行时间是优化的主要因素,但在决定哪条路线最有效时,可能会考虑距离、转弯次数等其他因素所有航路点都必须是"方向"服务的中途站,以优化其路线
来源:https://developers.google.com/maps/documentation/directions/intro#OptimizeWaypoints
另一方面,如果你在文件的交通部分检查持续时间,它会显示
当以下所有条件都适用时,将使用交通信息(这些条件是接收方向响应中的duration_in_Traffic字段所需的条件(:
- 行驶模式参数为行驶或未指定(行驶是默认行驶模式(
- 请求包含一个有效的departure_time参数。departure_time可以设置为当前时间或将来某个时间。这不可能成为过去
- 请求不包括中途停留航路点如果请求包括航点,则在每个航点前面加上via:以影响路线,但避免中途停留
来源:https://developers.google.com/maps/documentation/directions/intro#DirectionsAdvanced
注意用粗体标记的句子。不幸的是,交通信息不允许路线优化所需的中途停留。