Google maps Google Javascript API地理编码限制

Google maps Google Javascript API地理编码限制,google-maps,google-maps-api-3,geocoding,Google Maps,Google Maps Api 3,Geocoding,使用Google Maps JavaScript API v3进行客户端地理编码有哪些限制 我的研究: Google Maps PHP API每天最多只能请求2500个地理代码() Google Maps Javascript API v3限制每天加载25000次地图() 谷歌建议使用javascript API进行地理编码,以避免通过PHP API达到2500的限制。它声明“运行客户端地理编码,您通常不必担心您的配额”() 然而,它在任何文档中都没有说明通过GoogleMapsJavaScr

使用Google Maps JavaScript API v3进行客户端地理编码有哪些限制


我的研究:

  • Google Maps PHP API每天最多只能请求2500个地理代码()
  • Google Maps Javascript API v3限制每天加载25000次地图()
  • 谷歌建议使用javascript API进行地理编码,以避免通过PHP API达到2500的限制。它声明“运行客户端地理编码,您通常不必担心您的配额”()
  • 然而,它在任何文档中都没有说明通过GoogleMapsJavaScriptAPI v.3的地理编码限制

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

    根据(在何时使用服务器端地理编码下)

    2500请求限制为每个IP地址

    那么,你所说的极限到底是什么意思?托管应用程序或运行它的客户端的限制

    上面的陈述告诉我,“主人”没有限制;如果没有密钥或可执行的参考URL,谷歌就无法(很好)确定地理编码请求的来源。这就是休息的美,还有其他的东西

    它还告诉我,即使他们可以强制执行,他们也没有设定限制。这可能会对他们的商业模式产生反作用。

    基于

    通过浏览器进行的客户端地理编码对每个地图都有速率限制 会话,因此地理编码分布在所有用户和 根据您的用户群进行扩展

    那么,每个map会话的速率限制是多少

    由于地理编码限制为每个用户会话,因此您的 随着用户群的增长,应用程序将达到全局限制。 客户端地理编码将不会面临配额限制,除非您执行 用户会话中的一批地理编码请求。因此,运行 客户端地理编码,您通常不必担心 配额

    好的,限额是多少?我们开始

    在发送第11条时,具有速率限制或10 QPS(每秒查询数) 请求您的应用程序应检查第一个请求的时间戳 请求并等待1秒钟过去。同样的道理也应该适用 每日限额

    还不清楚吗?我也是

    这是我从他们的文件中找到的秘密答案,上面写着“每秒10个请求的速率限制”


    我不认为用户会话可以每秒发送10个请求,因此我认为它是无限的。

    我最近问了关于库的地方(或者,更确切地说,研究它并得出结论):

    基本上,似乎每个域每天只能加载25000个带有密钥的地图(这可能不正确,但我很确定是这样的)

    地理编码限制的限制方式如下:

    2500如果您使用的是API密钥而没有设置计费 如果您使用的是API密钥并已设置了帐单,则为100000

    如果您正在进行服务器端地理编码(预缓存结果或类似),那么您的地理编码是按域进行的,并且您将很快用完请求。(即,与使用REST API执行places请求类似:
    https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522151.1957362&radius=500&types=food&name=harbor&sensor=false&key=XXXX

    如果您使用的是javascript库,请使用autocomplete功能或PlacesService,如下所示:

    service = new google.maps.Geocoder();
    

    然后限制(分别为2500或100000)是针对每个最终用户的,因此您的限制将根据您的用户群进行缩放。

    我在谷歌的“地图”业务支持部门工作。以下是我个人的观点,不是谷歌的,但是我对这个话题相当熟悉


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

    因此,简短的回答是,没有专门针对客户端地理编码的文档化查询限制。一旦客户端加载了GoogleMapsJavaScriptAPI库,只要以合理的速度完成,它就可以发出任意多个地理代码请求。确保您不会遇到问题的两条经验法则:

  • 响应用户交互启动地理编码,即使有短时间的请求突发(例如,单击一个按钮对多个地址进行地理编码),您也不会有问题
  • 捕获任何超出查询限制的错误并优雅地处理它们(例如指数退避)。是Python中的一些示例代码
  • 但请不要试图忙着循环使用地理编码器或连续数小时不停地敲打它,有防止滥用的保护措施

    更新


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

    始终阅读您可以在谷歌官方网站上找到的最新版本有关正确的API版本,过时的stackoverflow答案不是最新的参考

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

    谷歌地图地理编码API使用限制

    每天2500个免费请求,计算为客户端和 服务器端查询

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

    启用按量付费计费以解锁更高的配额:

    0.50美元/1000次额外请求,每天最多100000次

    总的来说,我认为只要查询来自真实的人类用户,谷歌就会感到高兴,因为这对他们来说是有价值的

    还有一些方法可以帮助你