2011-10-26 84 views
0

我是一個編程開發者。如何通過earthtools.org從經緯度獲得TimeZone

我有一個ASPX.NET Web應用程序。

我嘗試通過使用Web服務來獲取當前Loged用戶的TimeZone。 我已經在我的數據庫中存儲了緯度和經度座標值。

有人可以給我一個教程的鏈接?甚至一個代碼示例...

回答

1
# offset = TimeZoneFinder.gmt_offset(some_lat, some_lng) 
# timezone = ActiveSupport::TimeZone[offset] 
# 
# timezone = TimeZoneFinder.timezoneId(lat, lng) 
# Time.zone = timezone 
# Time.zone.now 
# 
class TimeZoneFinder 
    attr_accessor :result 

    def self.gmt_offset(lat,lng) 
    self.new(lat,lng).find('gmtOffset').to_f 
    end 

    def self.timezoneId(lat,lng) 
    self.new(lat,lng).find('timezoneId') 
    end 

    def initialize(lat,lng) 
    uri  = URI.parse("http://ws.geonames.org/timezone?lat=#{lat}&lng=#{lng}") 
    @result = Hash.from_xml(open(uri)) 
    end 

    def find(key) 
    result["geonames"]["timezone"][key] 
    end 
end 

# Example XML response... 
# <geonames> 
# <timezone> 
#  <countryCode>US</countryCode> 
#  <countryName>United States</countryName> 
#  <lat>41.8781136</lat> 
#  <lng>-87.6297982</lng> 
#  <timezoneId>America/Chicago</timezoneId> 
#  <dstOffset>-5.0</dstOffset> 
#  <gmtOffset>-6.0</gmtOffset> 
#  <rawOffset>-6.0</rawOffset> 
#  <time>2011-09-01 21:40</time> 
#  <sunrise>2011-09-02 06:16</sunrise> 
#  <sunset>2011-09-02 19:22</sunset> 
# </timezone> 
# </geonames>`enter code here`