在iOS中使用OpenStreetMap .osm XML数据

时间:2011-05-04 17:07:11

标签: xml ios openstreetmap cloudmade route-me

我有一个使用谷歌地图的iOS应用程序来显示有POI的城市。现在我想提供一个离线地图,用户不需要显示数据连接。

我检查了OpenStreetMap项目,此城市的.osm导出为5MB - 非常适合iOS应用。我还检查了routeme库,但是只使用了tile,并且没有生成矢量数据。它是否正确? PNG图块的文件大小对我的应用来说太大了。

哪个库对显示OSM-XML数据有意义?我知道有cloudmade,但这是正确的决定吗?我对他们的许可模式感到有点困惑。还有其他建议吗?提示?

3 个答案:

答案 0 :(得分:1)

根据OSM尝试skobbler / telenav的sdk:http://developer.skobbler.com。 你有离线地图(小矢量地图),自定义POI和可配置的样式 - 它应该满足你的需求。

免费套餐应足以让您启动应用并获得几个用户,直到您需要付费为止。

答案 1 :(得分:0)

Route-me仅渲染切片数据,而不是矢量数据。

Cloudmade没有直接离线库,您必须自己动手。 http://support.cloudmade.com/answers/offline-maps

我没有看到任何开源矢量地图渲染器,但谷歌搜索显示一个或两个闭源渲染器。

答案 2 :(得分:0)

请参阅http://wiki.openstreetmap.org/wiki/Rendering以获取OSM数据的呈现引擎列表(免责声明:我是其中一个的作者)。有些是开源的;一些(例如我的)可以免费用于非商业用途但是封闭源。

您可以尝试使用开源库Mapnik,但OSM页面说它很难设置。这里有一个适用于iOS的Mapnik视图控制器:https://gist.github.com/2934223

您在那里找到的任何C或C ++代码当然可以在iOS中使用,因为C和C ++与Objective C兼容;我发现将便携式C ++代码挂钩到iOS应用程序相对容易。