Gem GeoKit 后台获取 Google Map 数据遭遇 Geokit::TooManyQueriesError

raven · 2013年11月14日 · 最后由 huacnlee 回复于 2013年11月15日 · 3317 次阅读

已经设置了3秒才发一次请求,换了新的 API KEY(limit per day is 25k) 但还是会碰到这个错误。

执行查询的语句是

@result = Geokit::Geocoders::GoogleGeocoder3.geocode "#{address}, #{zip}, #{city}, #{region}, #{country_name}"

求解。。

我记得 Google Map API 的说明,Geocoding 的查询是不允许用在非地图显示的地方,同时也有请求次数限制。并且还提到,不知道哪天会去掉

人家既然有限制,肯定有记录 IP 什么的,换 Key 是没用的,你只能做的就是要么换别的服务,要么到了限制次数就不要再查询了

@raven 会不会是和 google map 的其他 service 加一起达到总量限制了?

确实是记录 IP 的,我现在的方案是放在前端,通过用户的 IP 不停的请求~

#2 楼 @luikore 应该不是,如果这样我换了新的KEY应该就可以了。应该是 @huacnlee 所说的,不过我查文档的时候没有看到这个限制,也可能我把注意都集中在 rate/request limit 上了。如果你还记得麻烦贴个地址……

#4 楼 @raven 同一个帐号不同 key?

#4 楼 @raven https://developers.google.com/maps/documentation/geocoding/#Limits

使用 Google Geocoding API 时,每天发送的地理位置查询请求不得超过 2,500 个。(Google Maps API for Business 用户每天最多可执行 100,000 个请求。)执行此限制是为了防止滥用和/或出于其他目的使用 Geocoding API,并且此限制以后可能会在不另作通知的情况下发生变化。此外,我们还设定了请求速率限制,以防滥用此服务。如果您超出了 24 小时限制或以其他方式滥用此服务,Geocoding API 可能会临时停止运行。如果您继续超出此限制,那么系统将阻止您访问 Geocoding API。

注意:Geocoding API 只能与 Google 地图配合使用;不得只进行地理编码而不在地图上显示结果。有关允许的用法的完整详情,请参阅 Maps API 服务条款许可限制。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号