0

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

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

CLLocation不提供足够可靠的离线服务来完成我正在做的事情,它依赖于您之前在线时制作的缓存,等等。混乱。

我试过这个:https ://github.com/drodriguez/reversegeocoding但没有运气,它需要一些稍微复杂/令人困惑的终端安装,使用我从未听说过的名为 Thor 的东西,并且正在呕吐各种错误,所以我放弃了。

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

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

提前致谢。

4

3 回答 3

2

ReverseGeocodeCountry是一个用于 iOS 的简单轻量级离线国家反向地理编码器,它有一个包含国家多边形数据的静态 JSON 文件,用于对任何 lat/lng 进行反向地理编码:

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

于 2014-03-03T00:20:24.833 回答
1

世界各国”是一个.csv包含国家、坐标、本地化国名、首都和其他信息的文本文件。它似乎可以免费使用。您只需将其导入 SQLite 数据库。

编辑刚刚注意到你想要反向地理编码。该数据库仅适用于正向地理编码。

您可以在http://www.gadm.org/download下载所有国家/地区的 shapefile 。如果您下载 a .kmz,您可以将其解压缩到边界坐标列表中。您可能会每隔 5 或 10 个坐标获取更小的尺寸(精度更低)。

于 2013-01-29T17:47:52.653 回答
1

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

于 2015-04-16T12:10:44.490 回答