Google geocoding api 谷歌地理编码API达到极限;代码';这不是原因。我的错误在哪里?

Google geocoding api 谷歌地理编码API达到极限;代码';这不是原因。我的错误在哪里?,google-geocoding-api,Google Geocoding Api,我在Google Sheets中有一个客户数据库,其中有一个地址列表。我正在使用地理编码生成它们的经度/纬度,以便在用于映射的融合表中使用。我只在963名客户的列表上使用了以下代码一次,在客户761上停止了,出现了“一天内调用的服务次数过多:地理代码”错误 我知道每天调用Geocode API的限制为2500次。让我困惑的是,我不确定这段代码在761次迭代之后是如何达到那个极限的。我已经看了一遍又一遍,没有看到它如何在每次迭代中执行超过1个请求。到目前为止,我没有其他类似的项目,也从未使用过Ge

我在Google Sheets中有一个客户数据库,其中有一个地址列表。我正在使用地理编码生成它们的经度/纬度,以便在用于映射的融合表中使用。我只在963名客户的列表上使用了以下代码一次,在客户761上停止了,出现了“一天内调用的服务次数过多:地理代码”错误

我知道每天调用Geocode API的限制为2500次。让我困惑的是,我不确定这段代码在761次迭代之后是如何达到那个极限的。我已经看了一遍又一遍,没有看到它如何在每次迭代中执行超过1个请求。到目前为止,我没有其他类似的项目,也从未使用过GeocodeAPI特性。我希望防止将来意外地出现此错误

我哪里出错了

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';
        }
    }
}
函数geocodeFirstAddressFromCell(){
var sss=SpreadsheetApp.openById(“此处为工作簿ID”);
var ss=sss.getSheetByName('Sheet1');
var lastRow=ss.getLastRow();
对于(var startRow=2;startRow
在不了解这个库的情况下,您确定前面的代码没有向API发出多个请求吗

如果这是问题所在,我认为适当的方法如下:

var geocoder = Maps.newGeocoder();
for (...) {
    var results = geocoder.geocode(addressCellData);
}

我希望您会发现它很有用。

首先要检查的是您是否使用了API密钥,否则您可能会很容易遇到“超过查询限制”错误。有关如何开始使用API键的一些提示,请参阅

var geocoder = Maps.newGeocoder();
for (...) {
    var results = geocoder.geocode(addressCellData);
}