5

我试图准备 OSM ( *.osm.pbf ) - 整个意大利的数据,以便将其离线用于 iPhone 应用程序。我需要从 7 到 16 的缩放级别,因为全国各地都有很多 POI。

是我的出发点。这个解决方案的问题是数据库的文件大小很大。

是否有适用于 iOS 6/7 的基于矢量的离线地图使用的开源解决方案?或者,是否可以最小化数据库文件的大小?

4

3 回答 3

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 上运行。

祝你好运。如果您使用这些工具取得了某种突破,请回来分享您的成果。我正在做同样的事情,我可以自己使用指针。

于 2013-10-24T21:41:31.577 回答
3

数据库的大小在很大程度上取决于您要存储的信息。OSM 确实有很多不同的功能,您只需要其中的一小部分。如果您只需要 POI,那么您可以过滤掉所有高速公路、土地利用、湖泊和河流、电力线,也许还有建筑物的轮廓。这可以通过删除所有带有相应标签的元素来完成,因此生成的数据库会小得多。osmfilter可能会有所帮助。

有一长串基于 OSM 的 iOS 应用程序,其中一些是开源的。还有一个关于矢量瓦片的 wiki 页面。但请记住,图块通常只表示视觉地图,不包含有关 POI 或其他特征的信息。

于 2013-10-22T11:17:17.207 回答
1

这个问题有点老了,但在搜索 OSM 矢量地图时会出现。

WhirlyGlobe-Maply 工具包可以显示基于 OSM(和其他)数据的矢量地图。它是开源的,基于 OpenGL ES,速度非常快。当前版本适用于正在开发 Android 端口的 iOS。

还有一个工具链可以帮助从 OSM 数据生成矢量图。阅读此处了解详细信息。

于 2014-03-26T14:56:42.037 回答