使用Google Direction Matrix API的问题

时间:2016-10-31 12:37:53

标签: javascript google-maps google-direction

我尝试从API中找到 duration_in_traffic 值。

当我像这样使用Distance Matrix Service对象时:

service.getDistanceMatrix(
{
    origins         : i === 0 ? [origin] : [destination],
    destinations    : i === 0 ? [destination] : [origin],
    travelMode      : google.maps.TravelMode.DRIVING,
    drivingOptions  : {
        departureTime   : departureTime[i],
        trafficModel    : google.maps.TrafficModel.PESSIMISTIC
    }
}, callbackCar);

结果不包含duration_in_traffic字段。

当我使用JSONP代替GET API服务时,控制台包含意外令牌:错误......

getDelay: function() {
    return $resource('https://maps.googleapis.com/maps/api/distancematrix/json', {
        key: ACCESS.ggAPI,
        origins: "@origins",
        destinations: "@destinations",
        language: "fr-FR",
        mode: "@mode",
        transit_mode: "@transitMode",
        traffic_model: "@traffic_model"
    }, {                        
        get: {
            method: 'JSONP'
        }
    });
}

当我尝试使用GET代替JSONP时,我遇到了CORS问题......

当我尝试将角度服务构建的uri放在另一个窗口时,我可以找到正确的结果:

{
   "destination_addresses" : [ "93200 Saint-Denis, France" ],
   "origin_addresses" : [ "95500 Gonesse, France" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "16,7 km",
                  "value" : 16746
               },
               "duration" : {
                  "text" : "19 minutes",
                  "value" : 1133
               },
               **"duration_in_traffic" : {
                  "text" : "23 minutes",
                  "value" : 1391
               },**
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果没有高级计划,您将无法获得duration_in_traffic属性。

  

此段的总持续时间,考虑trafficModel属性指示的流量条件。此属性可能未定义,因为持续时间可能未知。 仅在向计划客户提供时,在提出请求时定义了drivingOptions。

Source