从经纬度查找时区

是否有任何可以从经纬度转换为时区的图书馆(或更好的networking服务)?

对于我正在进行的一个项目,我深深地看了这个问题。 GeoNames.org和EarthTools.com对于许多情况都是很好的select,但有以下严重缺陷:

  • GeoNames.org通过search数据库中包含时区字段的最近点来查找时区。 这往往会导致靠近边界的错误结果。 这也是痛苦的缓慢,导致查询时间在每个请求几秒钟的顺序。 如果查询点附近的数据库中没有项目,它也不会返回有效的时区。 GeoNames也限制了每天可以进行的查询次数,从而使批量操作变得困难。
  • EarthTools.org使用地图并且能够快速返回查询,但是它不考虑大多数地点的夏令时,并且返回一个原始的偏移量而不是时区ID(即,它们返回“GMT-7 “而不是”美国/芝加哥“)。 另外,在准备这篇文章时,我只是看着他们的页面,谷歌浏览器警告他们网站上的恶意软件。 这对我来说是新的,它可能会改变,但显然是令人担忧的。

这些缺陷意味着这些现有的工具不适合我的需求,所以我推出了自己的解决scheme,并将其发布以供一般性使用。 你可以在这里find它:

http://www.askgeo.com/

AskGeo基于世界时区地图,因此它为每个有效的经度和纬度返回有效的时区。 它返回在Linux和大多数其他操作系统和编程框架上使用的标准时区ID(例如,“America / Los_Angeles”)。 它也会返回当前的偏移量,充分考虑夏令时。

这是非常容易使用和使用logging在网站的主页上。 API支持批量查询,所以如果你需要做大量的查询,请使用批处理接口,而不是让我们的服务器出现串口请求。 大量查询也快得多,所以每个人都赢了。

当我们第一次启动这个function时,我们将其构build在Google App Engine(GAE)上,并向所有用户免费。 这是因为当时GAE的价格太低了。 从那时起,我们的服务器负载大幅增加,GAE的价格上涨。 这两个因素的结合导致我们转向amazon web services托pipe,并开始收取商业用途,同时使服务免费为非营利,非商业性的开源项目和研究人员。 对于商业用户,我们提供1000个免费查询,让潜在客户评估API以确保满足其需求。 查看网站的价格和条款。

底层库是用Java编写的,由于大众的需求,我们也在商业许可下发布了这个库。 图书馆和定价细节的完整文档在网站上。

我希望这是有用的。 这对我正在进行的项目当然是有用的。

看看Geonames.org

这是一个免费的web服务,可以让你从一个长/纬度获得大量的信息

他们还为GeoNames Webservices库提供免费的(和开源的)Java客户端(其他语言的库也提供:ruby,python,perl,lisp …)

这里有一些你可以从long / lat得到的信息:( 这里是完整的web服务列表)

  • 查找最近的地址
  • find最近的交叉路口
  • find附近的街道
  • 海拔
  • 时区

时区现在可以通过Google API使用

https://developers.google.com/maps/documentation/timezone/

雅虎地图API通过反向地理定位提供时区信息。

一探究竟。

http://developer.yahoo.com/geo/placefinder/guide/requests.html

你需要多less准确度? 将经度除以15将是正确的:p

这些看起来很有希望 –

http://www.earthtools.org/webservices.htm

Eric Muller为tz(Olson)数据库的时区制作了shapefile地图 。 但是有一些小问题,

  1. 使用的界限往往是非官方的。
  2. 它不像tz数据库本身那样定期更新,所以一些新形成的或调整过的区域可能会丢失。

但是,对于大多数目的而言,这似乎是非常准确的。

DRT引擎获取纬度,经度和本地date时间,并返回时区偏移量。 这可以用来build立未来某个特定位置的时区。