为什么我会收到Google Geocoding API错误:超过查询限制?

时间:2013-08-09 11:33:32

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

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

我在这里有点迷失......

谢谢!

1 个答案:

答案 0 :(得分:2)

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

Geocoder每次调用Location.near(“foo”)时都会进行API调用(为了得到foo的lat / lon)。结合对模型进行地理编码,您可能会达到速率限制。

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