我正在开发一个显示 map 的 Android 应用程序,当用户点击它时,它会获取 Lat/Lng 并将它们发送到我的 Rails 服务器,该服务器执行 reverse_geocoding 并将地址和坐标存储在数据库。然后,用户可以看到显示其位置周围所有地点的 map 。
我昨天刚刚添加了通过应用程序创建地点的功能,之前我直接在 Rails 中使用 activeadmin,一切正常。但是昨天,在测试我的应用程序时,我突然遇到了 Google API 错误:
Google Geocoding API error: over query limit
这怎么可能?我知道每天有 2500 个请求的限制,但我离这个数字还很远,我昨天在 2 小时内完成了 50 个创作。 当我等待 30 分钟左右时,它再次工作...
对于反向地理编码,我使用的是 Geocoder。 Location.near
是否有可能每次都向 Google API 发出请求?通常在提供 Lat/Lng 时它不会请求 Google 服务器,但它只在数据库中检查,对吧?
或者是我的应用程序在我每次显示 map 时向 Google 服务器发送此类请求吗?
我有点迷路了...
谢谢!
最佳答案
地理编码服务也根据每秒的查询次数进行限制,这可能是该消息的原因。
Geocoder 会在您每次调用 Location.near("foo") 时调用 API(以获取 foo 的纬度/经度)。结合对模型进行地理编码,您可能会达到速率限制。
您可能想尝试在调用查询限制异常时添加一些重试逻辑,或者从您的 Android 应用获取纬度/经度并将其直接传递给查询,从而避免 .near 地理定位。
关于android - 为什么我会收到 Google Geocoding API 错误 : over query limit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145763/