Ruby - 地理编码 API 响应速度不够快
Posted
技术标签:
【中文标题】Ruby - 地理编码 API 响应速度不够快【英文标题】:Ruby - geocoding api not responding fast enough 【发布时间】:2014-11-24 13:07:24 【问题描述】:可能的重复:
Link 1、Link 2、Link 3、Link 4
以上参考对我没有帮助!
代码:
require 'geocoder'
begin
Geocoder.configure(:timeout => 30)
geo_data = Geocoder.search("any_ip_address_here")
location = geo_data.first.data
country_code = location["country_code"]
puts "#country_code"
rescue => e
puts "#e.message"
end
宝石:
地理编码器 (1.2.6)
错误:
“地理编码 API 响应不够快(使用 geocoder.configure(:timeout => ...) 设置限制)”
我在开发阶段和生产阶段随机收到此错误。为什么会这样?即使我已经完成了:
地理编码器默认超时时间为 15 到 30 秒。 每天 480 个请求。除了上述之外,我还有什么遗漏吗? 请帮我解决这个问题。
提前致谢。
【问题讨论】:
使用 3rd 方服务会发生这种情况 - 您应该将 API 调用移至后台作业并在失败时重试。 这里可能的解决方案:***.com/questions/26093393/…希望对您有所帮助! 【参考方案1】:这在“地理编码服务”下的自述文件中进行了描述。创建一个初始化器(config/initializers/geocoder.rb)
并添加:
Geocoder::Configuration.timeout = 15
希望这对你有用:)
【讨论】:
【参考方案2】:我们建议响应用户输入并因此对延迟高度敏感的应用程序使用 Places API 中的 Place Autocomplete 功能(也可在 javascript、android 或 ios 中使用)而不是地址地理编码。 Place Autocomplete 经过优化以交互使用,因此延迟非常低。 地理编码 API 中的地址地理编码经过优化,可用于完整、明确、格式正确的地址,例如在线表格中输入的送货地址,因此延迟比地点自动完成更高。旧的正向地理编码器已经是这种情况。 Place Autocomplete 和新的正向地理编码器之间的延迟差异进一步增加,因为新的地理编码器具有更大的覆盖范围和更好的结果质量,但代价是延迟稍高。
来自 Google Guys
https://developers.google.com/maps/documentation/geocoding/faq
【讨论】:
以上是关于Ruby - 地理编码 API 响应速度不够快的主要内容,如果未能解决你的问题,请参考以下文章
Ruby 地理编码库与最新的 Google 地图、Yahoo 地图、Bing API 兼容
api 地理编码错误响应“此 IP、站点或移动应用程序无权使用此 API 密钥”