【问题标题】:Why do I get Google Geocoding API error: over query limit?为什么我会收到 Google Geocoding API 错误:超出查询限制?
【发布时间】:2013-09-05 15:31:43
【问题描述】:

我正在开发一个显示地图的 Android 应用程序,当用户单击它时,它会获取 Lat/Lng 并将它们发送到我的 Rails 服务器,它会执行 reverse_geocoding 并将地址和坐标存储在数据库。然后,用户可以看到显示他所在位置周围所有地点的地图。

我昨天刚刚添加了通过应用程序创建地点的功能,在此之前我直接在 Rails 中使用了 activeadmin,一切正常。但是昨天,在测试我的应用程序时,我突然收到了 Google API 错误:

Google Geocoding API error: over query limit

这怎么可能?我知道每天有 2500 个请求的限制,但我离这个数字还很远,我昨天在 2 小时内完成了 50 个创作。 当我等待 30 分钟左右时,它再次起作用......

对于反向地​​理编码,我使用的是 Geocoder。 Location.near 是否有可能每次都向 Google API 发出请求?通常在提供 Lat/Lng 时它不会请求 Google 服务器,但它只检查数据库,对吗?

或者是我的应用程序在我每次显示地图时都会向 Google 服务器发送此类请求?

我有点迷路了……

谢谢!

【问题讨论】:

  • 您使用的是 API 密钥吗?
  • 好吧,我认为 Rails Geocoder 不需要手动放置 API 密钥。我的 Android 应用中有一个,但错误消息显示在我的 Rails 服务器日志中。

标签: android ruby-on-rails google-maps rails-geocoder


【解决方案1】:

地理编码服务也会根据每秒查询数进行限制,这可能是该消息的原因。

Geocoder 会在您每次调用 Location.near("foo") 时进行 API 调用(以获取 foo 的纬度/经度)。结合对模型进行地理编码,您可能会达到速率限制。

您可能希望在调用查询限制异常时尝试添加一些重试逻辑,或者从您的 Android 应用获取纬度/经度并将其直接传递给查询,避免使用 .near 地理位置。

【讨论】:

  • 谢谢 Derek,但事实上我不做 Location.near("foo"),我做 Location.near(lat,lng),lat/lng 是我从我的 Android 应用程序传递的坐标。这就是为什么我不明白这个错误!通常,当它已经有了坐标时,它不应该向 Google API 发出请求,对吧?但是你的重试逻辑是对的,我应该实现它(虽然我有一段时间没有收到错误......)
  • 你能弄清楚为什么你达到了极限。我也有类似event_locations = Location.near([lat,long],@distance) 的东西,但这似乎不会导致地理编码问题。但是,当我尝试对地址进行地理编码时,它目前告诉我它超出了限制。不可能是/秒,因为我在一分钟后重试了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
相关资源
最近更新 更多