81

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

4

8 回答 8

64

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

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

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

http://www.askgeo.com/

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

它非常易于使用,并且使用记录在网站的主页上。该 API 支持批量查询,因此如果您需要进行大量查找,请使用批量接口,而不是让我们的服务器因串行请求而陷入困境。批量查询也快得多,所以每个人都赢了。

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

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

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

于 2011-04-01T22:26:59.150 回答
28

看看Geonames.org

这是一项免费的网络服务,可让您从 long/lat 获取大量信息

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

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

  • 查找最近的地址
  • 查找最近的十字路口
  • 查找附近的街道
  • 海拔
  • 时区
于 2008-09-03T12:15:17.837 回答
12

现在可以通过 Google API 获得时区

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

于 2012-10-15T00:39:51.677 回答
8

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

看看这个。

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

于 2012-02-03T09:15:55.767 回答
5

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

于 2008-09-03T12:18:26.347 回答
4

项目死了:-/

这些看起来很有希望-

存档链接:

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

于 2008-09-03T12:00:30.867 回答
4

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

  1. 使用的边界通常是非官方的。
  2. 它没有像 tz 数据库本身那样定期更新,因此可能会丢失一些新形成或调整的区域。

然而,除此之外,它对于大多数用途来说似乎是非常准确的。

于 2012-01-21T18:22:49.333 回答
0

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

于 2010-12-10T05:20:52.613 回答