如何解决-更改到达时间不会更改到达目的地的时间长度

时间:2019-01-31 01:35:44

标签: javascript google-apps-script

我正在尝试创建一个潜在房屋地址的快速列表,并显示到达目的地的距离和时间,例如工作或运动。

我为此抓取了一个脚本,它可以正常工作,但我的直觉是它不包含交通数据。

我已包括到达目的地的时间,无论我将到达目的地的时间是午夜还是高峰时间都将保持不变。

function GOOGLEMAPS(start_address,end_address,return_type,arrive_time) { 
var mapObj = Maps.newDirectionFinder();
  mapObj.setOrigin(start_address);
  mapObj.setDestination(end_address);
  mapObj.setArrive(arrive_time);
  var directions = mapObj.getDirections();

  var getTheLeg = directions["routes"][0]["legs"][0];

  var meters = getTheLeg["distance"]["value"];

  switch(return_type){
    case "miles":
      return meters * 0.000621371;
      break;
    case "minutes":
        // get duration in seconds
        var duration = getTheLeg["duration"]["value"];
        //convert to minutes and return
        return duration / 60;
      break;
    case "hours":
        // get duration in seconds
        var duration = getTheLeg["duration"]["value"];
        //convert to hours and return
        return duration / 60 / 60;
      break;      
    case "kilometers":
      return meters / 1000;
      break;
    default:
      return "Error: Wrong Unit Type";
   }

}

例如: 预期的结果是午夜旅行需要10分钟,高峰时段需要20分钟 实际结果显示两次旅行都需要10分钟

1 个答案:

答案 0 :(得分:0)

我认为除了duration_in_traffic之外,您还希望每条腿都获得duration

根据Google Maps路线文档,您似乎需要指定出行方式为driving,并且需要包含departure_time-大概使用.setMode()和{ {1}}。

https://developers.google.com/maps/documentation/directions/intro#DirectionsAdvanced