Rails使用Timezone从纬度和经度获取时区

时间:2012-09-25 08:07:23

标签: ruby-on-rails-3 timezone

我正在使用Rails应用程序,我希望从纬度和经度获得 timezone 。我在stackoverflow上搜索了这个,发现这个link是最好的方法。

我安装了gems geokit timezone ,并尝试在我的控制台中实现相同的内容:

require 'geokit'
require 'timezone'
res = Geokit::Geocoders::GoogleGeocoder.geocode('140 Market St, San Francisco, CA')
timezone = Timezone::Zone.new(:latlon => res.ll)

但我得到错误

ArgumentError: wrong number of arguments (1 for 2)

我查看了Timezone的文档。 他们要求通过注册获取用户名。但是我还没有收到任何激活邮件。有人可以为此提出一些解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

看起来调用Timezone :: Zone.new(:latlon => res.ll)不起作用(至少我得到了同样的错误)。我认为这是由于Google返回的res.ll值格式的变化。但是这个电话应该可以胜任:

Timezone::Zone.new(lat: res.lat, lon: res.lng)

,首先请确保您创建了一个包含GeoNames且有效here的帐户。您还必须为timezone gem创建和配置初始化程序。后面的内容在此描述:timezone/lib/timezone/configure.rb