【发布时间】:2013-01-13 08:52:56
【问题描述】:
有很多与这个问题相关的现有问题,但我已经尽可能多地查看了这些问题,但没有得到答案。
我正在尝试根据纬度和经度在 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,我可以提供纬度/经度,并获得一个国家?如果没有,我应该采取哪些步骤才能让这些功能自行运行?
提前致谢。
【问题讨论】:
-
如果这对于您的应用程序来说已经足够了,您可以使用机场(参见openflights.org/data.html)或城市(en.wikipedia.org/wiki/List_of_cities_by_longitude)的位置来近似查找
标签: ios objective-c mapkit geocoding reverse-geocoding