【问题标题】:Geocoding with Timezone information使用时区信息进行地理编码
【发布时间】:2011-04-11 07:45:08
【问题描述】:

有没有一种从纬度/经度坐标或物理地址获取包含 DST 信息的时区信息的好方法?

我发现了一些似乎提供这种服务的网络服务,但我不知道它们的可靠性如何,或者它们是否会在某个时候消失。我的应用程序需要一些可以长期使用的东西。

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

【问题讨论】:

标签: web-services rest geolocation timezone geocoding


【解决方案1】:

另一个问题的答案是这个问题的一个很好的解决方案 - Determine timezone from latitude/longitude without using web services like Geonames.org

【讨论】:

    【解决方案2】:

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

    此处提供了矢量化时区地图:http://georezo.net/jparis/Data/wrldtz_tab.htm。这是一个包含近 2000 个“地区”的数据库。每个区域由地球表面上的一组多边形定义,如果您在该区域内,它会告诉您您所在的时区。

    有主要缺点:

    • 自 2002 年以来未更新。
    • 它仅定义陆地上的多边形(如果您在水上,则不被视为处于任何时区)。
    • 它不提供时区的 Olson 标识符,只提供国家名称和(标准时间)UTC 偏移量。

    最后一个限制对您来说可能不是一个大问题:没有那么多时区,也许您可​​以花时间手动将每个时区分配给它的 Olson 名称(特别是如果您只对一小部分感兴趣时区)。

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

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

    -菲尔

    【讨论】:

      【解决方案3】:

      牛头人。我建议使用 MaxMind 的 GeoIP。

      我写了一篇关于如何在 Django 中使用具有时区支持的地理定位的帖子,但同样的方法也可以应用于其他语言。

      http://www.konstruktor.ee/blog/geolocation-with-time-zone-support-in-django

      GeoIP 对不同语言有很多绑定。

      http://www.maxmind.com/app/api

      我认为从长远来看这是最可靠的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-26
        相关资源
        最近更新 更多