1 回答
TA贡献1890条经验 获得超9个赞
根据 Google Maps Directions API 服务的官方文档,只有满足以下所有条件时才会考虑交通信息:
出行方式参数为driving,或未指定(driving为默认出行方式)。
该请求包含一个有效
departure_time
参数。departure_time
可以设置为当前时间或将来的某个时间。它不可能在过去。该请求不包括中途停留航点。如果请求包含路标,请在每个路标前加上 via: 以影响路线但避免中途停留。例如,&waypoints=via:旧金山|via:山景城|...
来源:https ://developers.google.com/maps/documentation/directions/overview#DirectionsAdvanced
查看您的代码,我可以看到您使用了中途停留点
waypts.push({
location: companies[i].Address,
stopover: true
});
如果您想考虑实时交通状况,您应该将航路点的中途停留属性设置为 false。但是,请注意,在这种情况下,您不能使用航点优化,因为根据官方文档,航点优化仅适用于中途停留:
默认情况下,Directions 服务会按给定顺序计算通过提供的路标的路线。或者,您可以将 optimize:true 作为路点参数中的第一个参数传递,以允许路线服务通过以更有效的顺序重新排列路点来优化提供的路线。(此优化是旅行商问题的应用。)旅行时间是优化的主要因素,但在决定哪条路线最有效时,可能会考虑其他因素,例如距离、转弯次数等。所有航路点都必须是路线服务的中途停留点,以优化其路线。
来源:https ://developers.google.com/maps/documentation/directions/overview#OptimizeWaypoints
因此,您必须在交通状况和航路点优化之间做出选择。这两件事不可能同时发生。
添加回答
举报