如何在iphone上本地存储openstreetmap数据

时间:2013-03-27 16:24:40

标签: ios ios6 openstreetmap

我正在为一所大学开展项目,我对其中的一部分工作非常困难。

简单地说,我希望做以下5件事:

  1. 下载我所在城市的开放街道地图数据

  2. 将数据本地存储在手机的硬盘上。

  3. 将我的iOS应用程序中的数据视为地图

  4. 在地图上放置标记。

  5. 沿着这些路径之间的道路绘制路径。

  6. 我已经在这个项目的这个特定部分工作了几个星期,而我却无处可去。我甚至无法弄清楚如何在手机上存储地图,更不用说查看地图数据了。我尝试过使用“Route-Me”库但无法使其工作(虽然它似乎是使用openstreetmap数据的最佳库之一,所以我希望学习如何使用它)。我觉得自己很失败了。

    如果有人完成了我想要做的任何任务,请将您链接到您使用过的教程/指南/视频。

    我不是在寻找人们给我代码或为我做工作,我想学习如何做到这一点,但如果有人能指出我可以学习的网站的正确方向,我会非常感激。

    非常感谢任何建议或反馈

2 个答案:

答案 0 :(得分:5)

以下是我最终解决问题的方法。

由于Tilemill本身不读取.osm/.o5m/.pbf个文件,因此我使用Osmosis将.osm文件转换为.shp个文件。

然后我在Tilemill中创建了一个新项目,并将我想要的特定.shp文件作为图层添加到新项目中。要让地图看起来像你想要它需要一点点的修修补补,但它与css非常相似,并且很容易随便拿起。

一旦我按照我想要的方式查看地图,我就将其导出为.mbtiles文件。这需要很长时间,并且文件可能非常大,具体取决于磁贴的详细程度。我做了一张爱尔兰地图,缩放级别在7-14之间,我做了一张都柏林城市的地图,缩放级别为11-17。尽管都柏林市的地图上的瓷砖要少得多,但它们的尺寸都大约为200MB。

然后我在网上找到了这个教程,它解释了如何在您的应用程序中存储.mbtiles文件以及如何阅读它:http://martinsikora.com/creating-mbtiles-db-for-ios-mapbox-from-hi-res-map-image

以下是我发现有用的一些其他链接:

http://www.kindle-maps.com/blog/using-tilemill-with-openstreetmap-data.html

http://mapbox.com/developers/mbtiles/

http://mapbox.com/mapbox-ios-sdk/api/

http://mapbox.com/developers/api/#static_api

http://support.mapbox.com/discussions

我希望这对某人有用

答案 1 :(得分:4)

我建议您尝试MapBox iOS SDK。它实际上来自Route-Me库,可以让你完成列表中的所有内容。

要记住的一个要点是,在下载OSM数据并将其本地存储在iOS设备之间还有另一个步骤,即生成地图图块并将其存储在某种数据库中。

Here是一个使用MapBox SDK的iOS应用程序示例,该应用程序包含在线和离线地图源,是一个很好的起点。