Google Javascript API地理编码限制

can*_*ail 31 google-maps geocoding google-maps-api-3

使用Google Maps JavaScript API v3进行客户端地理编码的限制是什么?


我的研究:

  1. Google Maps PHP API每天限制2500个地理编码请求(https://developers.google.com/maps/documentation/geocoding/#Limits)
  2. Google Maps Javascript API v3 每天限制为25000个地图加载(https://developers.google.com/maps/documentation/javascript/usage)
  3. Google建议使用javascript API进行地理编码,以避免通过PHP API实现2500限制.它声明"运行客户端地理编码,您通常不必担心配额"(https://developers.google.com/maps/articles/geocodestrat#client)

但是,在任何文档中都没有通过Google Maps JavaScript API v.3说明地理编码限制是什么.

(这一直困扰我一段时间,我不止一次研究过它,但没有找到可靠的答案)

jpa*_*kal 71

我在Google的Maps for Business支持部门工作.以下是我个人的观点,而不是谷歌的观点,但我只想说我对这个话题非常熟悉!

首先,区分客户端地理编码(对google.maps.Geocoder的JavaScript调用)和服务器端地理编码(对/ maps/api/geocode的HTTP请求)非常重要.这个问题和答案专门针对客户端地理编码; 有关服务器端限制,请参阅此处.特别是,经常提到的每人每天限IP 500个问询适用于服务器端的地理编码,而不是客户端.

简而言之,没有专门针对客户端地理编码的书面查询限制.一旦客户端加载了Google Maps JavaScript API库,它就可以根据需要制作尽可能多的地理编码请求,只要它们以理智的速度完成.确保您不会遇到问题的两条经验法则:

  1. 启动地理编码以响应用户交互,即使有短暂的请求突发(例如,单击按钮以对多个地址进行地理编码),您也会很好.
  2. 捕获任何OVER_QUERY_LIMIT错误并优雅地处理它们(例如,指数退避). 是Python中的一些示例代码.

但请不要试图忙于循环地理编码器或锤击它几个小时,有防止滥用的保护.

UPDATE

截至2017年,客户端配额是根据相应的Web服务配额计算的.请看看Christophe Roussy的答案.

  • "这个问题和答案专门针对*客户端*地理编码." (2认同)

Chr*_*ssy 10

请务必阅读您在官方Google网站上找到的最新API版本,过时的stackoverflow答案不是最新的参考!

https://developers.google.com/maps/documentation/geocoding/usage-limits

以下是我写这个答案时所说的内容:

Google Maps Geocoding API使用限制

每天2,500个免费请求,以客户端和服务器端查询的总和计算.

每秒50个请求,计算为客户端和服务器端查询的总和.

启用"即用即付"结算以解锁更高的配额:

$ 0.50 USD/1000个额外请求,每天最多100,000个.

总的来说,只要查询来自真实的人类用户,我认为Google很高兴,因为这对他们有一些价值.

还有一些方法可以通过最多30天的缓存结果来保存一些请求:https: //developers.google.com/maps/premium/optimize-web-services#optimize