关于Web服务:从纬度经度查找时区

关于Web服务:从纬度经度查找时区

Timezone lookup from latitude longitude

是否有可用的图书馆(甚至更好的Web服务)可以将纬度/经度转换为时区?


对于正在研究的项目,我对这个问题进行了相当深入的研究。在许多情况下,GeoNames.org和EarthTools.com都是不错的选择,但存在以下严重缺陷:

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

这些缺陷意味着这些现有工具不适合我的需求,因此我推出了自己的解决方案并将其发布为一般用途。你可以在这里找到它:

http://www.askgeo.com/

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

它非常易于使用,用法已记录在网站的主页上。该API支持批处理查询,因此,如果您需要进行大量查找,请使用批处理接口,而不是使用串行请求来中断我们的服务器。批量查询也更快,因此每个人都可以胜出。

首次启动时,我们是在Google App Engine(GAE)上构建的,并免费提供给所有用户。这是可能的,因为当时GAE的价格太低了。从那时起,我们的服务器负载大大增加,GAE的价格上涨。这两个因素共同导致我们转向使用Amazon Web Services进行托管,并开始为商业用途付费,同时为非营利,非商业性开源项目和研究人员免费提供服务。对于商业用户,我们提供1000个免费查询,以使潜在客户可以评估API以确保其满足他们的需求。有关价格和条款,请参见网站。

基础库是用Java编写的,并且由于受欢迎的需求,我们还根据商业许可发布了该库。图书馆的完整文档和价格详细信息位于网站上。

我希望这是有用的。这对于我正在从事的项目当然很有用。


看看Geonames.org

这是一项免费的网络服务,可让您从长期/长期获取很多信息

他们还为GeoNames Webservices库提供了一个免费的(开放源代码)Java客户端(还提供了其他语言的库:ruby,python,perl,lisp ...)

这是您可以从long / lat获得的一些信息:(此处是Web服务的完整列表)

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


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

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


Yahoo place API通过反向地理位置提供时区信息。

看看这个。

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


您需要多少精度?将经度除以15几乎是正确的:p


Eric Muller为tz(Olson)数据库的时区制作了shapefile映射。 不过,有一些小小的警告:

  • 使用的界限通常是非正式的。
  • 它没有像tz数据库本身那样定期更新,因此可能缺少一些新形成或调整的区域。
  • 但是,除此以外,对于大多数目的而言,它似乎非常准确。


    项目已死:-/

    这些看起来很有前途-

    存档链接:

    https://web.archive.org/web/20150503145203/http://www.earthtools.org/webservices.htm


    DRT引擎采用纬度,经度和本地日期时间,并返回时区偏移量。这可用于在将来的日期建立特定位置的时区。


    推荐阅读