使用Google Maps JavaScript API v3进行客户端地理编码的限制是什么?
我的研究:
但是,在任何文档中都没有通过Google Maps JavaScript API v.3说明地理编码限制是什么。
(这一直困扰着我一段时间,而且我不止一次研究过它而未能找到可靠的答案)
答案 0 :(得分:71)
我在Google的Google地图商务支持部门工作。以下是我个人的意见,而不是Google的意见,但我只想说我对这个话题非常熟悉!
首先,区分client-side geocoding(对google.maps.Geocoder的JavaScript调用)和server-side geocoding(对/ maps / api / geocode的HTTP请求)非常重要。这个问题和答案专门针对客户端地理编码;有关服务器端限制,请参阅here。特别是,经常提到的每个IP每天2,500个请求限制仅 到服务器端地理编码,而不是客户端。
简而言之,没有专门针对客户端地理编码的文档查询限制。一旦客户端加载了Google Maps JavaScript API库,它就可以根据需要制作尽可能多的地理编码请求,只要它们以理智的速度完成。两个经验法则,以确保您不会遇到问题:
但是请不要试图忙于循环地理编码器或将其锤击几个小时,有防止滥用的保护措施。
<强>更新强>
截至2017年,客户端配额是根据相应的Web服务配额计算的。请看看Christophe Roussy的答案。
答案 1 :(得分:9)
始终阅读官方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
答案 2 :(得分:2)
基于https://developers.google.com/maps/articles/geocodestrat,
通过浏览器的客户端地理编码是每个地图的速率限制 会话,因此地理编码分布在您的所有用户和 与您的用户群一起扩展。
那么,每个地图会话的速率限制是多少?
由于地理编码限制是按用户会话进行的,因此不存在您的风险 随着用户群的增长,应用程序将达到全局限制。 客户端地理编码不会面临配额限制,除非您执行 用户会话中的批量地理编码请求。因此,跑步 客户端地理编码,您通常不必担心您的 配额。
好的,限制是什么?我们走了
https://developers.google.com/maps/documentation/business/articles/usage_limits
在发送第11个时,速率限制或10 QPS(每秒查询数) 请求您的应用程序应检查第一个的时间戳 请求并等待1秒钟过去。同样应该适用 到了每日限制。
还不清楚?我也是。
这是我从他们的文档中找到的壁橱答案,它说“每秒10个请求的速率限制”
https://developers.google.com/maps/documentation/business/webservices/quota
我不认为用户会话每秒可以发送10个请求,因此我认为它是无限的。
答案 3 :(得分:0)
我最近问过这个地方图书馆(或者更确切地说,研究了它并得出结论):
Regarding Places Library for Google Maps API Quota limits
基本上,似乎带有密钥的Map加载限制为每个域每天25,000(这可能不对,但我很确定这种情况)。
地理编码限制以下列方式受到限制:
如果您在未设置结算的情况下使用API密钥,则2,500 如果您使用的是API密钥且已设置结算
,则为100,000如果您正在进行服务器端地理编码(预缓存结果或类似结果),那么您的地理编码是按域进行的,并且您将很快耗尽请求。 (例如,如果您正在使用REST API执行场所请求,请执行以下操作:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=XXXX
)
如果您正在使用javascript库,请使用自动填充功能或PlacesService,如下所示:
service = new google.maps.Geocoder();
然后是每个最终用户的限制(分别为2,500或100,000),因此您的限制会随您的用户群而变化。
答案 4 :(得分:-3)
根据the article you linked(何时使用服务器端地理编码):
2,500个请求限制是每个IP地址。
那么 - 你到底是什么意思?托管应用程序或运行它的客户端的限制?
上面的陈述告诉我 对“主机”没有限制;如果没有密钥或可强制执行的引荐来源网址,Google就没有(良好的)方法来确定地理编码请求的来源。除了其他方面,这就是REST的美丽。
它还告诉我,即使他们可以强制执行,他们也没有设置限制。这可能会对他们的商业模式产生反作用。