Google apps script 一天内调用服务的次数过多地理代码
我在使用谷歌地图地理编码功能时收到这个错误消息,我知道当我超过一天2500个请求的自由限制时会发生这种情况。然而,我已经设置了一个计费选项来支付额外请求的费用,但是我仍然会遇到这个错误。当我设置账单时,它要求我创建一个项目,然后将其与我的账单信息关联,我这样做了,然后我得到了一个API密钥来使用 我不知道是否/在哪里我会把这个API键放在我的代码中。这是我的一段代码Google apps script 一天内调用服务的次数过多地理代码,google-apps-script,Google Apps Script,我在使用谷歌地图地理编码功能时收到这个错误消息,我知道当我超过一天2500个请求的自由限制时会发生这种情况。然而,我已经设置了一个计费选项来支付额外请求的费用,但是我仍然会遇到这个错误。当我设置账单时,它要求我创建一个项目,然后将其与我的账单信息关联,我这样做了,然后我得到了一个API密钥来使用 我不知道是否/在哪里我会把这个API键放在我的代码中。这是我的一段代码 var addressColumn = 1; var addressRow; var latColumn = addr
var addressColumn = 1;
var addressRow;
var latColumn = addressColumn + 1;
var lngColumn = addressColumn + 2;
var geocoder = Maps.newGeocoder().setRegion(getGeocodingRegion());
var location;
for (addressRow = 1; addressRow <= cells.getNumRows(); ++addressRow) {
var address = cells.getCell(addressRow, addressColumn).getValue();
// Geocode the address and plug the lat, lng pair into the
// 2nd and 3rd elements of the current range row.
location = geocoder.geocode(address);
// Only change cells if geocoder seems to have gotten a
// valid response.
if (location.status == 'OK') {
lat = location["results"][0]["geometry"]["location"]["lat"];
lng = location["results"][0]["geometry"]["location"]["lng"];
cells.getCell(addressRow, latColumn).setValue(lat);
cells.getCell(addressRow, lngColumn).setValue(lng);
}
}
};
var addressColumn=1;
var地址行;
var latColumn=addressColumn+1;
var lngColumn=addressColumn+2;
var geocoder=Maps.newGeocoder().setRegion(getGeocodingRegion());
var定位;
对于(addressRow=1;addressRow,您必须在工作表上触发此更改,否则此函数会触发太多时间。此外,我还添加了一个计时器,用于缓解二流限制请求
function getLatLng(address) {
if(address=="")return("");
var API_KEY = "YOUR API KEY";
var options = {
muteHttpExceptions: true,
contentType: "application/json",
};
var serviceUrl = "https://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&key=" + API_KEY;
try{
var response = UrlFetchApp.fetch(serviceUrl, options);
//sleep random between 2 and 1 second for request
var milliseconds = Math.floor(((Math.random() * 2) + 1) * 1000);
Utilities.sleep(milliseconds);
if (response.getResponseCode() == 200) {
var location = JSON.parse(response.getContentText());
if (location["status"] == "OK") {
var lat = location["results"][0]["geometry"]["location"]["lat"];
var lng = location["results"][0]["geometry"]["location"]["lng"];
return([[lat,lng]]);
}
else{
return([["error",location["status"]]]);
}
}
}
catch(err){
return([["error",err.message]]);
}
};
您可以获得一个api密钥。
您可以在工作表单元格中直接使用此函数,例如:getLatLng(D2)
您查看了吗?