iOS上的离线反向地理编码

时间:2013-01-29 17:33:23

标签: ios objective-c mapkit geocoding reverse-geocoding

有很多与此问题相关的现有问题,但我已经查看了尽可能多的问题,但没有得到答案。

我正在尝试根据纬度和经度在iOS上执行离线反向地理编码查找。我希望能够提供经度和纬度,并提供该点所在的国家。我可以使用Geonames(例如:http://api.geonames.org/countryCode?lat=45.03&lng=8.2&username=demo)执行此操作,但我需要离线的类似功能,但设备上没有Internet功能。

CLLocation不能提供足够可靠的离线服务,它可以用于我正在做的事情,它依赖于您以前在线时制作的缓存等。凌乱。

我试过这个:https://github.com/drodriguez/reversegeocoding但是没有任何运气,它需要一些稍微复杂/令人困惑的终端装置,使用一种我从未听说过的称为Thor的东西,并抛出各种各样的错误,所以我保释。

我找到了一些可下载的地图,但这些似乎更复杂,令人担忧的是,数百兆甚至千兆字节的大小 - 远远超出了iOS应用的范围。我只需要国家,比这更小(城市,街道,地点等),所以我想我应该能够得到一个更小的文件。

所以我的关键问题是:是否有一些预先存在的数据库或工具,最好是iOS支持,我可以提供纬度/经度,并获得一个国家/地区?而且,如果没有,我应该采取什么步骤才能让这些功能独立运行?

提前致谢。

3 个答案:

答案 0 :(得分:2)

ReverseGeocodeCountry是适用于iOS的简单轻量级离线国家/地区反向地理编码器,它有一个带有国家多边形数据的静态JSON文件,用于反转任何纬度/经度的地理编码:

https://github.com/krisrak/ios-offline-reverse-geocode-country

答案 1 :(得分:1)

Countries of the World”是一个.csv文本文件,其中包含国家/地区,坐标,本地化国家/地区名称,大写字母和其他信息。它似乎可以免费使用。您只需将其导入SQLite数据库即可。

修改注意到您想要反向地理编码。该数据库仅适用于转发地理编码。

您可以在http://www.gadm.org/download下载所有国家/地区的shapefile。如果您下载.kmz,则可以将其解压缩到边框坐标列表。您可以采用每个第5或第10个坐标来缩小尺寸(精度较低)。

答案 2 :(得分:1)

以防我可以建议另一个好的书面离线地理编码库。 https://github.com/Alterplay/APOfflineReverseGeocoding