下面的代码获取两个不同地址之间的距离,并以英里、公里或分钟为单位返回距离。我的理解是,我可以使用google.script.run.googleMaps((在web应用程序中执行我的应用程序脚本;
我的问题是,如何使用输入字段作为我的from和两列,在web应用程序中复制相同的结果?
function googleMaps(start_address,end_address, return_type){
var mapObj = Maps.newDirectionFinder();
mapObj.setOrigin(start_address);
mapObj.setDestination(end_address);
var directions = mapObj.getDirections();
var getTheLeg = directions["routes"][0]["legs"][0];
var meters = getTheLeg["distance"]["value"];
switch(return_type){
case "miles" :
return Math.floor(meters * 0.000621371);
break;
case "kilometers" :
return meters / 1000;
break;
case "minutes" :
var duration = getTheLeg["duration"]["value"];
return duration / 60;
break;
default :
return "Error: Wrong unit type";
}
}
将参数传递到WebApp
- WebApp必须包含
function doGet(e)
(或者doPost(e)
(,这将是调用WebApp时运行的第一个函数 -
当您部署WebApp时,WebApp URL将如下所示:
https://script.google.com/a/XXXXX.eu/macros/s/XXXXXXXXXXXXXXXXXXX/exec
-
如果你想把参数传递到url,你应该这样做
https://script.google.com/a/XXXXX.eu/macros/s/XXXXXXXXXXXXXXXXXXX/exec?start_address=AAA&end_address=BBB&return_type=CCC
- 这些参数可以在WebApp中检索为
function doGet(e){
var start_address = e.parameter.start_address;
var end_address = e.parameter.end_address;
var return_type = e.parameter.return_type;
...
}
- 现在,您可以在
doGet()
中完全集成您的功能,而不需要google.script.run.googleMaps();
- 如果您确实想用
google.script.run
调用函数,请注意,它是一个从客户端调用Apps Script函数的方法(Javascript( - 如果要使用它,这意味着首先需要创建一个具有
HtmlService
的客户端 - 其次,您需要将检索到的参数从Apps Script传递到Javascript,然后再传递回来
您可以直接传递它们:google.script.run.googleMaps(start_address,end_address, return_type);