【问题标题】:How to add API key to Google Geocoding script如何将 API 密钥添加到 Google 地理编码脚本
【发布时间】:2019-12-06 20:00:41
【问题描述】:

我在问一个与这篇帖子非常相似的问题:How to add my key to this google app script?

但是,该帖子上的答案不再有效(使用 Maps.setAuthentication(clientId, signingKey)),因为它用于 Google Maps API 高级计划,该计划不再适用于新客户。 见这里:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)

基本上,我使用以下代码在 google 表格中查找包含 10,000 项地址列表的邮政编码。该代码有效,但我收到“一天内调用了太多次服务:地理编码(第 7 行)”错误。我生成了一个地理编码 API 密钥和计费帐户,但不知道在哪里插入它。我对谷歌脚本代码不是很熟悉。

    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-maps google-apps-script google-sheets google-cloud-platform geocode


    【解决方案1】:

    令人惊讶的是,你不能! AppScript 库不是为此而设计的。您必须保持在允许的免费级别。

    要使用您的 API 密钥,您必须致电 directly the API。与您当前的版本相比没有大的变化

    var YOUR_API_KEY=.......
    
    function geo2zip(a) {
      var options = {
          muteHttpExceptions: true,
          contentType: "application/json",
      };
    
      var serviceUrl = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat(a) + "," + long(a) + "&key=" + YOUR_API_KEY;
    
      var response = UrlFetchApp.fetch(serviceUrl, options);
      if (response.getResponseCode() == 200) {
        return response.results[0].formatted_address.split(',')[2].trim().split(' ')[1];
      }
    }
    
    

    【讨论】:

    • 谢谢!所以看起来我无论如何都会被限制在每天 300 个查询的配额内?如果是这样,是否有另一种方法可以在这里实现我的目标(即获取 10000 多个地址的长列表的邮政编码)?感谢任何建议或只是指向正确的方向......在这一点上,我有点迷失如何解决这个问题
    • 不确定 AppScript 是否是执行此操作的最佳位置(10k+ 地址是很多查询!希望您每天都想做,会很贵!)。 Cloud Function 或 Cloud Run 将针对此进行更多设计。但要注意超时。我强烈建议您处理 1000 行的块作为示例。顺便说一句,你将是可扩展的!
    • 非常感谢!!我会调查那些
    猜你喜欢
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 2022-07-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多