我正在开发一个显示地图的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服务器发送此类请求吗?
我在这里有点迷失......
谢谢!
答案 0 :(得分:2)
地理编码服务也会根据每秒查询次数进行限制,这可能是该消息的原因。
Geocoder每次调用Location.near(“foo”)时都会进行API调用(为了得到foo的lat / lon)。结合对模型进行地理编码,您可能会达到速率限制。
您可能希望在调用查询限制异常时尝试添加一些重试逻辑,或者从Android应用程序获取lat / long并将其直接传递给查询,从而避免使用.near地理定位。