【问题标题】:Offline Reverse Geocoding at Country Level [closed]国家级的离线反向地理编码[关闭]
【发布时间】:2011-07-03 11:56:26
【问题描述】:

这似乎有很多,但似乎每个人都想要街道级别的数据。

我正在编写一个 iOS 应用程序,该应用程序需要获取您所在国家/地区的国际拨号代码(拨出) - 所以我只需要该国家/地区。由于这主要用于国外,因此在线解决方案实际上行不通!

Whist 搜索我发现了很棒的 openstreetmap.org,但他们的导出功能似乎只提供街道级别 - 并且不会一次性完成整个世界!

一旦我有了数据,我可能还需要算法方面的帮助......但那是以后的事了!! :-)

谢谢

本。

【问题讨论】:

    标签: iphone ios geocoding reverse-geocoding


    【解决方案1】:

    您是否尝试过使用 http://www.geonames.org/ ? 您可以下载数据库并离线使用。

    【讨论】:

    【解决方案2】:

    如果您正在寻找基于四叉树的方法,请尝试Yggdrasil。它根据国家多边形数据生成四叉树。可以在here 找到一个 Ruby 示例查找脚本。

    【讨论】:

      【解决方案3】:

      Yggdrasil https://github.com/leonardvandriel/Yggdrasil 执行从坐标到国家代码的反向地理编码。包括一个 .ygg 文件,其精度可低至约 10 公里。

      这里有一个更粗略(40 公里精度)的变体:https://gist.github.com/leonardvandriel/4579113

      【讨论】:

        【解决方案4】:

        MapKit MKReverseGeocoder 类返回具有以下属性的 MKPlaceMark 对象:

        addressDictionary
        thoroughfare
        subThoroughfare
        locality
        subLocality
        administrativeArea
        subAdministrativeArea
        postalCode
        country
        countryCode
        

        你应该能够从中得到你需要的东西。您需要制作自己的国家/地区代码列表以及相关的拨号代码。

        【讨论】:

          【解决方案5】:

          这是 CLGeocoder 类参考中所说的。

          基于 iOS 的设备必须能够访问网络才能使用 geocoder 对象返回详细的地标信息。虽然, 地理编码器在本地存储足够的信息来报告本地化的 许多地点的国家名称和 ISO 国家代码。如果国家 特定位置的信息不可用,地理编码器可能 仍然向您的完成块报告错误。

          我也只需要国家/地区位置,但我不知道“许多位置”是什么意思。好像在挪威奥斯陆行不通。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-07-12
            • 2015-02-16
            • 1970-01-01
            • 1970-01-01
            • 2013-09-19
            • 2013-01-13
            • 1970-01-01
            相关资源
            最近更新 更多