为了账号安全,请及时绑定邮箱和手机立即绑定

为什么谷歌地图显示两点之间的持续时间错误?

为什么谷歌地图显示两点之间的持续时间错误?

素胚勾勒不出你 2022-12-22 15:42:36
我的地图上有 4 个不同的点。但它对所有人来说都是response一样的。我认为不要用流量来估计。例如,在谷歌地图中,我检查两点持续时间。那有时显示1小时8分钟,有时显示1小时7分钟。但在我的项目中它总是 58 分钟。如何解决这个问题并正确显示持续时间?durationlegs function calculateAndDisplayRoute(directionsService,directionsRenderer, map, myCompany, companies) {            var waypts = [];            for (var i = 0; i < companies.length; i++) {                waypts.push({                    location: companies[i].Address,                    stopover: true                });            }            directionsService.route(                {                    origin: document.getElementById("start").title,                    destination: document.getElementById("start").title,                    waypoints: waypts,                    optimizeWaypoints: true,                    travelMode: "DRIVING",                    drivingOptions: {                        departureTime: new Date(Date.now()),                        trafficModel: 'optimistic'                    }                },                function (response, status) {                    if (status === "OK") {                        console.log("response = ", response)                        directionsRenderer.setDirections(response);                        var route = response.routes[0];                        console.log("route = ", route);                        renderDirectionsPolylines(response, map, myCompany, companies);
查看完整描述

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

因此,您必须在交通状况和航路点优化之间做出选择。这两件事不可能同时发生。


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信