希望有人可以帮助我处理我的代码,因为我是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的新手,尽管我看过很多论坛/教程,但我都在苦苦挣扎,确切地我需要更改以实现自己想要的东西。我...
[According to docs它的结构应与下面的代码相似。