Nic*_*ick 28 ruby gem timezone location web-services
我有一个位置(城市,州),日期和时间,我想将其转换为utc,但需要先找到该位置的时区.我做了一些研究,一切似乎都指向地球工具或地理名称,但两个网络服务似乎只是纬度和经度.是否有服务或宝石或任何其他方式根据这种位置格式找到时区?或者如何将位置转换为纬度和经度?
Pan*_*kos 39
您可以使用Google地图地理编码API轻松获取纬度和经度.像GeoKit这样的API有ruby实现.一旦你有了这个,你就可以使用时区gem来轻松获得经度和纬度的时区.宝石也可以轻松地在您的时区进行时间转换.
require 'geokit'
require 'timezone'
res = Geokit::Geocoders::GoogleGeocoder.geocode('140 Market St, San Francisco, CA')
timezone = Timezone::Zone.new(:latlon => res.ll)
timezone.zone
=> "America/Los_Angeles"
timezone.time Time.now
=> 2011-12-01 14:02:13 UTC
Run Code Online (Sandbox Code Playgroud)
对于问题的第二部分,请参阅此问题的已接受答案:
从纬度/经度确定时区,而不使用像Geonames.org这样的网络服务
如该答案所述,您应该:
- 从geonames.org下载城市数据库
- 将其转换为紧凑的lat/lon - >时区列表
- 使用R-Tree实现有效地查找最近的城市(或更确切地说,它的时区)到给定的坐标
请记住,许多美国州属于单一时区,这应该使工作更容易.
| 归档时间: |
|
| 查看次数: |
11787 次 |
| 最近记录: |