【问题标题】:How to add an array to this google app script?如何向这个谷歌应用脚​​本添加一个数组?
【发布时间】:2020-11-09 20:15:13
【问题描述】:

我想在 Google 表格中调用此自定义公式 +100 次。我可以在这个脚本中添加一个数组吗?

function GOOGLEMAPS(start_adress,end_adress) {
  
  
  var mapObj =  Maps.newDirectionFinder();
  mapObj.setOrigin(start_adress);
  mapObj.setDestination(end_adress);
  var directions = mapObj.getDirections();
  
 
  var meters = directions["routes"][0]["legs"][0]["distance"]["value"];
  var distance = meters/1000;
  
  return distance;
      
  
}

【问题讨论】:

  • 不清楚你的意思。你想让数组做什么?
  • 我做了一个自定义函数来计算两个位置之间的距离。我想多次进行这个计算。为了避免超出数据配额,我希望用一个数组来解决这个问题。无论如何,我的问题是回答 bij Rubén。感谢您的回复!

标签: google-maps google-apps-script google-sheets google-sheets-formula custom-function


【解决方案1】:

您可以添加一个数组,但这很容易导致超出在短时间内完成的号码调用配额,也可能超过自定义函数的最大执行时间(30 秒),因此建议是使用地图服务时不要这样做。

无论如何,您可以通过使用A1:B2 样式引用将数组发送到自定义函数,只需限制要计算的距离数,以防止上述错误。

function GOOGLEMAPS(arr) {
 var output = [];

 for(var i = 0; i < arr.length; i++){ 

  var start_address = arr[i][0];
  var end_adress = arr[i][1];

  var mapObj =  Maps.newDirectionFinder();
  mapObj.setOrigin(start_adress);
  mapObj.setDestination(end_adress);
  var directions = mapObj.getDirections();
  
 
  var meters = directions["routes"][0]["legs"][0]["distance"]["value"];
  var distance = meters/1000;
  
  output.push([distance]);
      
  }
  return output;
}

资源

相关

其他相关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    相关资源
    最近更新 更多