基于到达时间的旅行时间(使用Google Spreadsheet)-函数

时间:2019-09-05 17:33:05

标签: javascript google-apps-script google-maps-api-3 google-sheets-api google-distancematrix-api

主要要求是使用两个位置之间的交通数据或邮政编码来查找旅行时间。

输入的参数将来自位置,目的地,到达时间(此时间介于6AM 8AM之间),交通方式,交通模型

基于我的Google脚本函数中的上述输入参数,它应该返回旅行时间

可以根据要求修改以下代码吗?

function GetDuration(location1, location2, mode) {
   var directions = Maps.newDirectionFinder()
     .setOrigin(location1)
     .setDestination(location2)
     .setMode(Maps.DirectionFinder.Mode[mode])
     .getDirections();
  return directions.routes[0].legs[0].duration.text;
}

//directions from Times Sq to Central Park, NY
Logger.log(GetDuration("40.7591017,-73.984488","40.7670973,-73.9793693","DRIVING") )


From                 To         Mode         Distance
Central Park, NY    Times Sq    TRANSIT      8 mins

1 个答案:

答案 0 :(得分:1)

请在下面找到如何使用setArrive()的示例:

function GetDuration(location1, location2, mode) {
   var arrive = new Date(new Date().getTime() + (10 * 60 * 60 * 1000));//arrive in ten hours from now
   var directions  = Maps.newDirectionFinder().setArrive(arrive)
  .setOrigin(location1)
  .setDestination(location2)
  .setMode(Maps.DirectionFinder.Mode[mode])
  .getDirections();
 return directions.routes[0].legs[0].duration.text;
}

如果您想提供到达时间-您还需要指定日期-就像在Google Maps的用户界面中一样。可以使用JavaScript date methods创建日期。

例如与new Date(year, month, day, hours, minutes, seconds, milliseconds)

示例:

var arrive=new Date(2019, 09, 07, 06);// 7th of September 2019 06:00 am