如何使用数组解决谷歌脚本“服务调用太多次一天”错误

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

我写了一个简单的脚本来获取两个位置之间的距离,每个位置位于GoogleSheets(下面)的不同单元格中。我的工作表在顶行中有一组65个位置,在第一列中列出了第二组6000个位置。我想找到顶行中每个位置与第一列中每个位置之间的距离。

鉴于我的数据集的大小,我遇到了“服务调用太多次一天:路由”错误消息。我发现this post建议可以创建一个数组来同时执行整个电子表格的计算,而不是逐个单元格。这对我当前的问题是否合适?如果是这样,我将如何编写脚本?这是我目前的代码:

function GOOGLEMAPS(start_address,end_address) {

    Utilities.sleep(1000)


  var mapObj = Maps.newDirectionFinder();
  mapObj.setOrigin(start_address);
  mapObj.setDestination(end_address);
  var directions = mapObj.getDirections();

 var meters = directions["routes"][0]["legs"][0]["distance"]["value"];
 var distance = meters * 0.000621371

 //Logger.log(distance)

 return distance;

}
arrays google-maps google-apps-script google-sheets
1个回答
0
投票

如果您希望克服Google Apps脚本确定的每日限额,则应使用Google Maps Premium计划凭据初始化地图。这意味着您应该与Google联系并购买Google Maps Platform Premium计划许可,以获得额外的配额限额。

为此目的有一种Maps.setAuthentication(clientId, signingKey);方法。

允许使用外部建立的Maps API for Business帐户,以利用额外的配额限额。您可以从Google Enterprise支持门户获取您的客户ID和签名密钥。将这些值设置为null可返回使用默认配额限额。

来源:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)

我希望这个答案能澄清你的疑问。

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