我需要更新此脚本以传递我的密钥,这样我每天才不会超过限制。我将如何修改此脚本以传递密钥?
(注意:在此处找到Google类信息:https://developers.google.com/apps-script/reference/maps/geocoder)
function geo2zip(a) {
var response=Maps.newGeocoder()
.reverseGeocode(lat(a),long(a));
return response.results[0].formatted_address.split(',')[2].trim().split(' ')[1];
}
function lat(pointa) {
var response = Maps.newGeocoder()
.geocode(pointa);
return response.results[0].geometry.location.lat
}
function long(pointa) {
var response = Maps.newGeocoder()
.geocode(pointa);
return response.results[0].geometry.location.lng
}
我以前从未使用过Google Apps脚本。
我已经安装了该脚本,并且正在使用“ = geo2zip(cell)”从我的Google工作表中调用该脚本以获取不完整地址的邮政编码。我的工作表中有〜28k。我已在Google控制台和帐单信息中启用了地理编码API。并创建了我的密钥,但不确定如何在上述脚本中包含我的密钥。
我还尝试使用以下命令通过我的密钥调用api。它正在工作,但这导致响应速度非常慢。按照这些回复的速度,我需要10天才能完成更新我的28k记录。
CELL M4852->“ https://maps.googleapis.com/maps/api/geocode/xml?address=ADDRESS&key=MYKEY” 下一个单元格->“ == ImportXML(M4852,” / GeocodeResponse / result / formatted_address“)”
该脚本的响应速度更快,因此我更愿意使用该脚本并传递我的密钥。请让我知道是否可以帮忙。
更新:我能够使用下面的Alberto建议添加Maps.setAuthentication来解决此问题。
答案 0 :(得分:1)
我相信您的问题更多与Google API管理有关,而不是与脚本本身有关。有一种方法可以限制您的密钥使用量。根据Maps Platform文档:
管理使用成本
管理您使用Google地图的费用 平台API,您可以为任何请求的所有请求设置每日限制 收费API。
要查看或更改Geocoding API的每日可计费限额,请执行 以下:
转到Google Cloud Platform中的地址解析API配额页面 安慰。从项目列表中,选择一个项目。在要求中 部分,在“每日请求”行上,点击修改图标,然后输入 首选的可计费每日总配额,最高限额(如果有) 由Google指定。
您基本上可以设置每天要允许多少个请求,这样可以避免超出限制。
更新
根据文档,您可以使用Maps.setAuthentication(clientId, signingKey)
方法将脚本链接到您的帐户:
允许使用外部建立的Maps API for Business 帐户,以利用额外的配额配额。您的客户编号和 签名密钥可以从Google Enterprise支持门户获取。 将这些值设置为null可返回使用默认配额 津贴。
地图文档链接:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)
文档URL:https://developers.google.com/maps/documentation/geocoding/usage-and-billing