2011-10-26 16 views
0

私はプログラミングの初心者です。earthtools.orgでTimeZoneを緯度と経度から取得する方法

私はASPX.NET Web Applicationを持っています。

Webサービスを使用して、現在のログに記録されているユーザーの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` 
関連する問題