从纬度经度查找时区

时间:2008-09-03 11:52:42

标签: web-services api timezone geocoding

是否有可用的库(甚至更好的网络服务)可以从纬度/经度转换为时区?

8 个答案:

答案 0 :(得分:64)

对于我正在研究的项目,我深入研究了这个问题。 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的价格上涨。这两个因素的结合使我们转而使用亚马逊网络服务进行托管,并开始为商业用途收费,同时为非营利,非商业开源项目和研究人员提供免费服务。对于商业用户,我们提供1000个免费查询,让潜在客户评估API以确保其满足他们的需求。有关定价和条款,请访问网站。

底层库是用Java编写的,由于受欢迎的需求,我们还在商业许可下发布了库。网站上有完整的图书馆文档和价格详情。

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

答案 1 :(得分:28)

查看Geonames.org

这是一个免费的网络服务,允许您从长/ lat获取大量信息

They also provide a free (and open source) Java Client for GeoNames Webservices library (library for other language also provided: ruby, python, perl, lisp...)

以下是您可以从long / lat获得的一些信息:(complete list of webservices here)

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

答案 2 :(得分:12)

答案 3 :(得分:8)

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

检查出来。

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

答案 4 :(得分:5)

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

答案 5 :(得分:4)

项目已死: - /

这看起来非常有前途 -

存档链接:

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

答案 6 :(得分:3)

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

  1. 使用的边界通常是非官方的。
  2. 它没有像tz数据库本身那样定期更新,因此可能会丢失一些新形成或调整的区域。
  3. 然而,对于大多数目的而言,它似乎非常准确。

答案 7 :(得分:0)

DRT Engine获取纬度,经度和本地日期时间并返回时区偏移量。这可用于在 future 日期确定特定位置的时区。