与数组混淆

问题描述 投票:1回答:1

希望有人可以帮助我处理我的代码,因为我是javascript的新手,尽管我看过很多论坛/教程,他们都在为自己想要的东西而苦苦挣扎,以实现自己想要的东西。

我目前有一个填充有英国邮政编码的google电子表格,这些邮政编码是使用Google表单和Microsoft表单/流程的组合自动添加到各个位置的。

我要做的是自动计算每行2个邮政编码之间的距离(以英里为单位)>。

例如,在C列中将有一个代答邮政编码,在D列中将有一个邮递区号-在E列中,当添加具有新邮政编码的新行时,我希望里程自动显示。

[目前,我正在使用以下客户函数来计算以英里为单位的距离,但是我需要能够将其包装在Google表格中的ARRAYFORMULA函数中,但是当我这样做时,只有第一个单元格显示正确的里程(其他保持空白)

下面的代码似乎工作得很好,只是我无法弄清楚如何使GOOGLEDISTANCE函数能够接受接送邮政编码数组和送递邮政编码数组,然后返回一个数组计算的里程数(以英里为单位)。

我希望这是有道理的,任何帮助将不胜感激

function GOOGLEDISTANCE(pick_up,drop_off,return_type) {
      Utilities.sleep(1000);
      var travelMode = Maps.DirectionFinder.Mode.BICYCLING;  
      var directions = Maps.newDirectionFinder()
      .setRegion('UK')
      .setLanguage('en-GB')
      .setOrigin(pick_up)
      .setDestination(drop_off)
      // .addWaypoint(waypoint1)
      .setMode(travelMode)
      .getDirections();

      if (directions.status !== "OK") 
      return "Error: " + directions.status;

     var route = directions.routes[0].legs[0];
     var time = route.duration.value;
     var distance = route.distance.value;

     var steps = route.steps.map(function(step) {
      return step.html_instructions.replace(/<[^>]+>/g, "");
     }).join("\n");

     switch(return_type) {
      case "MILES":
      case "miles":
      return distance * 0.000621371;
      break;
      case "KILOMETERS":
      case "kilometers":
      return distance / 1000;
      break;
      case "MINUTES":
      case "minutes":
      return time / 60;
      break;
      case "HOURS":
      case "hours":
      return time / 60 / 60;
      break;
      case "STEPS":
      case "steps":
      return steps;
      break;
      default:
      // Default to miles
     return distance * 0.000621371;
    }
}

希望有人可以帮助我处理我的代码,因为我是javascript的新手,尽管我看过很多论坛/教程,但我都在苦苦挣扎,确切地我需要更改以实现自己想要的东西。我...

javascript arrays distance google-sheets-api
1个回答
0
投票

[According to docs它的结构应与下面的代码相似。

© www.soinside.com 2019 - 2024. All rights reserved.