我尝试准备OSM(* .osm.pbf) - 整个意大利的数据,以便离线使用iPhone-app。我需要从7到16的缩放级别,因为全国各地都有很多POI。
This是我的出发点。此解决方案的问题是数据库的文件大小。
是否有针对iOS 6/7的基于矢量的离线地图使用的开源解决方案? 或者,是否可以最小化数据库文件大小?
答案 0 :(得分:6)
我对这个主题进行了广泛的研究,因为我目前的项目需要离线映射功能。
通过向您指出一些可用的开源工具,我将为您节省大量时间。我找到的项目。
OpenStreetPad - https://github.com/beelsebob/OpenStreetPad/
此项目已不再维护。但是,它直接从osm.pbf文件读取并成功呈现映射。您将必须管理要映射的区域的大小,因为如果您尝试将整个国家/地区加载到该区域,此实现似乎会挂起并最终崩溃。我使用25mb osm.pbf文件作为洛杉矶地区的一个子集,它运行得很好。我认为渲染引擎需要优化。
Mapsforge移植到iOS - https://github.com/medvedNick/Mapsforge_iOS
这个更快,似乎可以更好地渲染矢量数据。
libosmscout - http://wiki.openstreetmap.org/wiki/Libosmscout
这是一个开源C ++库,用于使用矢量地图进行离线渲染和路由。它得到了积极维护(参见他们的邮件列表)。我无法在Mac OSX上编译它,但也许你会有更好的运气。似乎是一个功能强大,功能强大且可移植的库。他们已经在Fedora,Moblin,Ubuntu,Debian,Windows,Qt和Mac OSX / iOS上运行。
祝你好运。如果您使用这些工具取得某种突破,请返回并分享您的结果。我正在研究相同的东西,我可以自己使用指针。答案 1 :(得分:3)
数据库的大小在很大程度上取决于您要存储的信息。 OSM确实有很多不同的features,其中只需要一小部分。如果您只需要POI,那么您可以过滤掉所有高速公路,土地,湖泊和河流,电力线以及建筑物轮廓。这可以通过删除具有相应elements的所有tags来完成,因此生成的数据库将小得多。 osmfilter可能会有所帮助。
有一长串OSM-based applications for iOS,其中一些是开源的。还有一个关于vector tiles的维基页面。但请记住,tiles通常只代表一个可视地图而不包含有关POI或其他功能的信息。
答案 2 :(得分:1)
这个问题有点陈旧,但它在搜索OSM矢量地图时出现了。
WhirlyGlobe-Maply工具包可以显示基于OSM(和其他)数据的矢量地图。它是开源的,基于OpenGL ES,速度非常快。当前版本适用于正在开发Android端口的iOS。
还有一个工具链来帮助从OSM数据生成矢量图。请阅读here了解详情。