2012-09-25 70 views
1

Iam正在使用Rails應用程序,我希望從經緯度獲得時區。我在stackoverflow上搜索了這個,發現這個link是最好的方法。Rails使用時區從經緯度獲取時區

我安裝了寶石geokit時區,並試圖實現同樣的在我的控制檯:

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的文檔。 他們要求通過註冊獲取用戶名。但我還沒有收到任何激活郵件。有人可以爲此提出一些解決方案。

在此先感謝。

+0

請參閱[本社區wiki條目](http://stackoverflow.com/q/16086962/634824) –

回答

0

它看起來像呼叫Timezone :: Zone.new(:latlon => res.ll)不起作用(至少我得到了同樣的錯誤)。我認爲這是由於谷歌返回res.ll值格式的變化。但這個電話應該做的工作:

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

然而,首先要確保您創建GeoNames的一個帳戶,並活躍here。您還必須爲時區寶石創建和配置初始化程序。後面的描述在這裏:timezone/lib/timezone/configure.rb