【发布时间】:2018-05-17 22:09:07
【问题描述】:
我在 Google 表格中有一个客户数据库,其中包含地址列表。我正在使用地理编码生成它们的经度/纬度,以便在 Fusion Tables 中用于映射。我在 963 个客户的列表中只使用了以下代码一次,它在客户 761 上停止,并出现“一天内调用过多次服务:地理编码”错误。
我知道调用 Geocode API 的每日限制为 2,500。让我感到困惑的是,我不确定这段代码是如何在 761 次迭代后达到该限制的。我一次又一次地查看它,并没有看到它是如何在每次迭代中执行超过 1 个请求的。我没有其他类似的项目,直到现在也从未使用过 Geocode API 功能。我想防止将来意外遇到此错误。
我哪里出错了?
function geocodeFirstAddressFromCell(){
var sss = SpreadsheetApp.openById('WORKBOOK ID HERE');
var ss = sss.getSheetByName('Sheet1');
var lastRow = ss.getLastRow();
for (var startRow = 2; startRow < lastRow; startRow++) {
var addressCellData = ss.getRange(startRow, 13).getValue();
var results = Maps.newGeocoder().geocode(addressCellData);
if (results.status == 'OK') {
var bestResult = results.results[0];
var lat = bestResult.geometry.location.lat;
var lng = bestResult.geometry.location.lng;
var latLng = lat + ',' + lng;
var addressTargetCellData = ss.getRange(startRow, 16).setValue(latLng);
ss.getRange(startRow, 17).setValue(1);
} else {
Logger.log(results.status);
return '0,0';
}
}
}
【问题讨论】: