通过网络应用程序调用参数



下面的代码获取两个不同地址之间的距离,并以英里、公里或分钟为单位返回距离。我的理解是,我可以使用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);

相关内容

  • 没有找到相关文章

最新更新