使用带有内置 Geocoder 类的 Google Script 进行 addr 到lat, lon转换;错误每日限制获得了地理编码 API 密钥,在 Geocoder dox 中没有提及

问题描述

Google 有关于 javascript requests through Geocoding API 的网页,它有 pages about the Geocoder Class in Scripts

这两项服务均获取街道地址并将其转换为纬度和经度,并且均来自 Google。没有关于它的文档,但我觉得必须有某种方式将 API 密钥包含在请求正文中,我空手而归,谷歌支持的第 1 墙没有帮助.

这是我在一天之内一千次查询后收到的错误

WOMP

有人可以对此有所了解吗?我在编码方面比较新,但我成功地将 POST 和 GET 命令从 Google Scripts 中与多个其他 API 一起使用,我简直不敢相信 Google 会切断您的 Geocoder 类请求,并且不给您支付特权的选项。

这与他们很不一样。

解决方法

进一步阐述@john 提到的文档中的限制,Geocoding API Web service 和 Geocoding with JavaScript service 有不同的用例。

使用网络服务 API,您可以向 Google 的服务器发出明确的服务器端 HTTP 请求。每秒 50 次查询的全局速率限制,面向 "batch processing"

https://developers.google.com/maps/documentation/geocoding/usage-and-billing#other-usage-limits

对于 JavaScript 服务,当您请求 JavaScript API 时,该服务会自动加载到浏览器中。每个用户会话速率限制,面向“正常预期”user-interaction

https://developers.google.com/maps/documentation/javascript/geocoding#rate-limits

具体的数字/细节不会公开分享。 (但您实际上可以对此进行测试并亲自查看 https://jsbin.com/tidapetose/1/edit?html,output。这是地理编码服务的示例,但类似的速率限制适用于其他服务。 如果您想一次发送 10 个以上的请求,则不应使用 Maps JavaScript API 服务,而应使用 Web 服务 API(即改为发出服务器端请求。)