我试图准备 OSM ( *.osm.pbf ) - 整个意大利的数据,以便将其离线用于 iPhone 应用程序。我需要从 7 到 16 的缩放级别,因为全国各地都有很多 POI。
这是我的出发点。这个解决方案的问题是数据库的文件大小很大。
是否有适用于 iOS 6/7 的基于矢量的离线地图使用的开源解决方案?或者,是否可以最小化数据库文件的大小?
我已经对这个主题进行了广泛的研究,因为我当前的项目需要离线映射功能。
通过向您介绍我发现的一些可用的开源工具和项目,我将为您节省大量时间。
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 上运行。
祝你好运。如果您使用这些工具取得了某种突破,请回来分享您的成果。我正在做同样的事情,我可以自己使用指针。
这个问题有点老了,但在搜索 OSM 矢量地图时会出现。
WhirlyGlobe-Maply 工具包可以显示基于 OSM(和其他)数据的矢量地图。它是开源的,基于 OpenGL ES,速度非常快。当前版本适用于正在开发 Android 端口的 iOS。
还有一个工具链可以帮助从 OSM 数据生成矢量图。阅读此处了解详细信息。