2010-09-12 79 views
6

有没有一种很好的方式来获取来自纬度/长度坐标或物理地址的DST信息的时区信息?带时区信息的地理编码

我发现一些似乎提供这项服务的网络服务,但我不能说出它们可能有多可靠,或者它们可能在某个时候消失。我需要一些适用于我的应用程序的应用程序,这些应用程序将长期存在

是这些服务的可靠性和长期的?还有其他更好的选择吗?

+0

这种欺骗:http://stackoverflow.com/questions/41504/timezone-lookup-from-latitude-longitude有至少一个更多的选择。由于您重视长期可靠性,因此不投票结束。 – 2010-09-12 12:27:00

+0

谢谢@Pekka。是的,我的重点是长期的,但很高兴看到其他人推荐这些服务。它看起来像geonames服务可能是更为成熟的服务。 – Tauren 2010-09-12 12:31:50

+0

复制[如何从使用纬度和经度坐标的位置获取时区]?(http://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location - 使用 - 纬度和经度坐标) – 2015-10-08 20:22:38

回答

1

我搜索了很长时间来找到一个数据库,我可以在本地托管来将lat + lon坐标映射到时区(即不依赖远程服务)。这是我能够想出的最好的。

这里有一个矢量化时区地图:http://georezo.net/jparis/Data/wrldtz_tab.htm。这是近2000个“地区”的数据库。每个区域都由地球表面上的一组多边形定义,它告诉你如果你在该区域内,你在什么时区。

有主要缺点:

  • 它没有被自2002年以来
  • 它只定义多边形土地(如果你是过水,你是不是认为是在任何时区更新)。
  • 它不会为您提供时区的奥尔森标识符,只有国家名称和(标准时间)UTC偏移量。

最后的限制可能不适合你一个很大的问题:有没有那么多的时区,也许你能投资手动每一个分配给其奥尔森名(特别是如果你感兴趣的只是时间少量的时区)。

为了读取您可以从上面给出的网站下载的数据文件,您将需要使用this library。如果你有兴趣,我可以拿出一些示例代码。

您还提到使用物理(邮政)地址。将这些转换为lat + lon坐标是一个完全不同的问题,我的猜测是,如果不使用某种在线/远程服务,就无法做到这一点。

-Phil