希望这个问题是有道理的。 我正在与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.
该应用程序使用中途停留点,以允许用户创建路线。有什么解决方法吗? “通过”似乎是一个很好的选择,但不允许用户告诉应用程序他在特定事件中待了多长时间。
谢谢
答案 0 :(得分:1)
我相信您的开发人员是完全正确的。无法在Directions API中考虑当前路况来优化路线。如果我们查看文档,就会看到以下有关优化的声明
默认情况下,“路线”服务以给定的顺序计算通过提供的路标的路线。 (可选)您可以将optimize:true作为waypoints参数内的第一个参数传递,以允许Directions服务通过以更有效的顺序重新排列路标来优化提供的路线。 (此优化是旅行业务员问题的一种应用。)旅行时间是最优化的主要因素,但是在确定哪条路线最有效时,可能要考虑其他因素,例如距离,转弯数等。 所有航路点都必须是中转站,才能使用路线服务优化其路线。
来源:https://developers.google.com/maps/documentation/directions/intro#OptimizeWaypoints
另一方面,如果您在文档的“流量”部分中查看持续时间,则说明该状态
以下所有条件均适用时,将使用路况信息(这些是在“路线”响应中接收duration_in_traffic字段所需的条件):
- 行驶模式参数是行驶中或未指定(行驶是默认行驶模式)。
- 该请求包含有效的离开时间参数。离场时间可以设置为当前时间或将来的某个时间。不可能是过去。
- 请求中不包含中途停留点。如果请求中包含中途停留点,请在每个途中点添加via:前缀,以影响路线但避免中途停留。
来源:https://developers.google.com/maps/documentation/directions/intro#DirectionsAdvanced
以粗体标记的注释句子。不幸的是,路况信息不允许路线优化所需的中途停留。