在移动设备上进行离线反向地理编码的技术?

时间:2011-01-03 23:58:49

标签: ios geocoding offline reverse-geocoding

我正在研究移动地图应用程序(目前是iOS,最终是Android) - 我正在努力解决如何在不使用在线服务的情况下最好地支持从纬度/长度到国家/州的反向地理编码。

Apple的反向地理编码API依赖于Google作为后端,并且在连接时效果很好。我也可以使用Open Street Maps项目或任何其他Web服务来实现类似的功能。

我真正想要的是创建一个C库,即使在我的应用程序中离线时,我也可以调用它,传入GPS坐标,并让它返回那些坐标处的国家和/或州。我不需要比状态级更精细的粒度,因此数据集不是很大。

我已经看过如何在服务器上执行此操作的示例,但从来没有适用于移动设备的任何内容。

我听说Spatialite可能是一个解决方案,但我不知道如何让它在iOS上运行,我想知道这个问题是否有点过分。

有哪些推荐的技术可以实现这一目标?

3 个答案:

答案 0 :(得分:4)

Radven

您需要获取所有管理实体(美国各州,国家等)的Shapefile(lat / lng大纲)。这些有很多公共领域的资源。例如,NOAA具有可以下载的美国州和地区的shapefile:

http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm

获得shapefile后,可以使用shapefile阅读器测试lat / lng是否在形状内。 C中有开源阅读器,只是google。我在sourceforge上看过shapefiles的东西,但是我自己没有使用它们。

OpenGeoCode.Org团队

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我可以建议好的书面离线地理编码第三方库。 https://github.com/Alterplay/APOfflineReverseGeocoding