【问题标题】:Google maps api v3, query limit exceeded more then 72 hours agoGoogle maps api v3,超过 72 小时前的查询限制
【发布时间】:2012-01-24 08:24:11
【问题描述】:

我需要知道如何重置 Google Maps API v3 的查询限制。我知道我在三天多前超过了它,但它没有重置,如果我发送超过 5 个请求,我仍然会点击它。如何完全恢复它才能再次获得 2500(或任何请求限制)?

我需要对一些地址进行地理编码并将它们(纬度、经度)放入数据库。到目前为止,我已经完成了 2500 个地址。我需要再做 1000 次,然后它只是页面加载时的一个请求。

【问题讨论】:

  • “如果您继续超过此限制,您对 Geocoding API 的访问可能会被阻止”...您是只达到了一次限制,还是多次达到了限制?
  • 我想只有一次

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


【解决方案1】:

根据Google Geocoding API documentation,实际上有两个限制。首先,有每天 2,500 个请求的限制,您说这是您几天前触发的。但是,还有一个单独的速率限制,这可能就是您在这里遇到的问题。

速率限制将阻止您在短时间内发出许多连续的地理编码请求,这似乎是您正在尝试做的事情。没有办法解决这个问题,因为在单个页面加载上发出 1,000 个请求并不是 Google Geocoding API 的预期用途。

根据谷歌的补充:

注意:Geocoding API 只能与 Google 地图结合使用;禁止在未在地图上显示的情况下对结果进行地理编码。有关允许使用的完整详细信息,请咨询Maps API Terms of Service License Restrictions

这可能意味着您使用 Google 地理编码器并将结果存储在数据库中的总体计划违反了 Google 的服务条款。

【讨论】:

  • 我想不出其他方法可以在每个请求中为 5000 个标记使用地理定位,所以我存储了它们,只是通过一个地理定位请求将它们放在谷歌地图上。嗯... fcuk,,该做什么该做什么...
  • 我的意思是怎么可能做到这一点?升级到谷歌地图的高级版?使用不同的域和 api 密钥? :D(解决方案不是实时的,它只是大学的一些测试站点)..
  • 如果您查看他们条款的第 10.1.3 节,他们明确禁止批量地理编码、预取和存储。但是,您可以尝试联系 Google 以获取高级帐户并免除特定条款。您的里程显然会有所不同。
  • 就我个人而言,我会使用对这种使用开放的不同地理编码服务。 MapQuest 为此提供了几个 API。 Nominatim (developer.mapquest.com/web/products/open/nominatim) 是完全开放的,许可的地理编码 API (developer.mapquest.com/web/products/dev-services/geocoding-ws) 也可供社区使用。它们都支持批量地理编码。
  • 嗯我对我来说很难,而且非常耗时来找出这项新服务中的所有内容,也许您有一些示例如何通过您建议的地理编码服务从地址获取纬度和经度?我将不胜感激。
【解决方案2】:

如果(且仅当)您要在 Google 地图上显示结果和标记(ToS 要求),那么这些文章可能会对您有所帮助:

  1. Geocoding Strategies 做出正确的决定,决定您是需要使用 PHP(服务器端)还是 JavaScript(客户端)。听起来您使用 PHP 是对的。
  2. Geocoding Addresses with PHP/MySQL 进行批量地理编码,前提是您的用例符合 Terms of Use ;) -- 请注意关于 Timing the Geocode Requests 的段落,因为 Rohan 指出您的问题可能是您发送请求的速度太快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2013-10-08
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多