【发布时间】:2019-03-17 17:45:49
【问题描述】:
我编写了一个简单的脚本来获取两个位置之间的距离,每个位置在 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;
}
【问题讨论】:
-
查询限制是查询限制。 6000 x 65 将被视为滥用,除非您将其传播到很长一段时间(没有使用 Google API 进行批量地理编码的规定)。
标签: arrays google-maps google-apps-script google-sheets