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 功能(也可在 javascriptandroidios 中使用)而不是地址地理编码。 Place Autocomplete 经过优化以交互使用,因此延迟非常低。 地理编码 API 中的地址地理编码经过优化,可用于完整、明确、格式正确的地址,例如在线表格中输入的送货地址,因此延迟比地点自动完成更高。旧的正向地理编码器已经是这种情况。 Place Autocomplete 和新的正向地理编码器之间的延迟差异进一步增加,因为新的地理编码器具有更大的覆盖范围和更好的结果质量,但代价是延迟稍高。

来自 Google Guys

https://developers.google.com/maps/documentation/geocoding/faq

【讨论】:

以上是关于Ruby - 地理编码 API 响应速度不够快的主要内容,如果未能解决你的问题,请参考以下文章

Ruby 地理编码库与最新的 Google 地图、Yahoo 地图、Bing API 兼容

谷歌地理编码 API 没有返回社区作为响应

api 地理编码错误响应“此 IP、站点或移动应用程序无权使用此 API 密钥”

怎么样用Python实现地理编码

带有 RestKit 0.20 的 Google 地理编码 API

ruby 地理编码rake任务与测试