绕过Google地理编码API IP速率限制

时间:2012-02-27 22:23:59

标签: google-maps google-maps-api-3 google-geocoder

我们是一家大公司的一个部门,并且遇到了谷歌地图和地理编码API的主要问题。问题是我们公司的所有70个部门都在同一个IP地址之后。因此,印度的客户服务代理似乎来自与俄亥俄州克利夫兰的开发人员相同的IP地址,他们似乎来自与西欧分部总裁相同的IP地址。我们拥有130,000多名员工,因超出IP速率限制而经常被阻止。

除了个人只是浏览到网站,碰巧使用谷歌地图与客户端的地址解析请求,试图做批量地理编码或提供用于显示地图自己的应用程序的任何部门都将提供相同的极限!我们实际上在内部使用我们自己的购买地点服务(http://www.ridgid.com/Tools/Where-To-Buy/),以便向客户提供有关当地经销商的信息。

虽然我们没有遇到API限制(至少现在还没有,当我们这样做时,我们总是可以购买企业许可证),但我们遇到了IP速率限制,目前还没有解决方法。我们已经在缓存地理编码结果和减少浪费的呼叫方面遵循最佳实践。值得庆幸的是,这对我们的客户来说不是问题,因为他们与我们公司内的用户不在同一个IP上。

问题是我们是否有任何方式可以从Google获取特殊IP地址的例外情况,以改善基于IP的限制,因为我们的设置?这对Google来说真的是一个问题。谢谢你的帮助!

6 个答案:

答案 0 :(得分:10)

拥有数万员工的大型公司的部门应拥有企业许可证。

答案 1 :(得分:2)

如果您使用此处所述的客户端地理编码,我认为没有与IP相关的限制:

https://developers.google.com/maps/articles/geocodestrat

  

通过地理编码Web服务进行的服务器端地理编码具有配额   每个IP每天2,500个请求,因此所有请求在一天内计算   反对配额。此外,Web服务是速率限制的   请求过快导致阻塞。

     通过浏览器的

客户端地理编码是每个地图会话的速率限制,因此地理编码>在您的所有用户中分布,并与您的用户群一起扩展。

“地图会话”表示每次加载Javascript Map API时。但是,也可能存在限制,无论是否与IP /域/子域/ URL相关联仍需要进一步澄清。

客户端的“速率限制”并不意味着每日配额或其他东西,我测试过这种方法,在一天内,它可以对超过2500个地址进行地理编码。您将不得不考虑并测试“速率限制”的工作原理,我的观察是,您可以立即突破到大约10个地址,然后限制您为下一个150请求每秒大约1个地理编码的速率,进一步请求来自同一个“会话”会花费指数级的时间。

答案 2 :(得分:0)

一种可能性是使用一批反向地理编码而不是单个请求。 Google在单向请求中最多允许24个航点。您可以等到批量累积24个反向地理编码,而不是发送单个反向地理编码。或者你可以像在这个答案中使用雅虎地图:Issue in displaying static Google maps

答案 3 :(得分:0)

我想知道请求中是否有很多重叠,就像所有人一直在查找相同的50个位置一样?您编写了一个缓存代理,首先向内部数据库发出请求,然后在找不到结果时向Google发出请求。这可以在软件级别完成,将GeoCode调用更改为InternalGeoCode,也可以在网络级别,并将所有请求发送到Google Geocode服务器并重定向它们?我不是百分之百地实现它有多难,或者它是否会有所帮助,也许这些请求都是独一无二的。

答案 4 :(得分:0)

如果您只进行正向地理编码,我建议您尝试使用GeocodeFarm。前几天我刚刚收到他们的电子邮件,说他们很快就会开始发布“反向”地理编码,他们仍在解决问题。也许它会帮助你,因为他们没有适当的请求率限制,唯一的限制是你的每日2,500限制,与google ... IDK相同。只是一个建议..

http://www.geocodefarm.com ==链接

答案 5 :(得分:0)

标准许可证的限制是 50到100 QPS (查询每秒)限制,具体取决于服务(即,Elevation服务有50 QPS限制,地理编码有100 QPS限制)。 尽管您可能有更高的配额,但您每秒执行的请求不能超过50个,否则服务器将阻止您的IP大约2个小时(根据我的经验)。解决方案是缓存请求并按计划执行,而不是在发生时执行。