3

我正在开发一个显示地图的 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 服务器发送此类请求?

我在这里有点迷路了......

谢谢 !

4

1 回答 1

2

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

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

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

于 2013-09-05T07:31:43.797 回答