我写了一个简单的脚本来获取两个位置之间的距离,每个位置位于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;
}
如果您希望克服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)
我希望这个答案能澄清你的疑问。