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

Ios 如何在iphone上本地存储openstreetmap数据,ios,ios6,openstreetmap,Ios,Ios6,Openstreetmap,我正在为大学做一个项目,其中的一部分我遇到了很大的困难 简单地说,我希望做以下5件事: 下载我所在城市的开放式街道地图数据 将数据本地存储在手机硬盘上 将iOS应用程序中的数据作为地图查看 在地图上放置标记 沿着这些路径之间的道路绘制路径 我已经为这个项目的这一部分工作了好几个星期,但我没有取得任何进展。我甚至不知道如何在手机上存储地图,更不用说查看地图数据了。我尝试过使用“Route Me”库,但无法使其正常工作(尽管它似乎是使用openstreetmap数据的最佳库之一,所以我希望了解如何使

我正在为大学做一个项目,其中的一部分我遇到了很大的困难

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

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

  • 将数据本地存储在手机硬盘上

  • 将iOS应用程序中的数据作为地图查看

  • 在地图上放置标记

  • 沿着这些路径之间的道路绘制路径

  • 我已经为这个项目的这一部分工作了好几个星期,但我没有取得任何进展。我甚至不知道如何在手机上存储地图,更不用说查看地图数据了。我尝试过使用“Route Me”库,但无法使其正常工作(尽管它似乎是使用openstreetmap数据的最佳库之一,所以我希望了解如何使用它)。我觉得自己被打败了

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

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


    任何建议或反馈都将不胜感激

    我建议您尝试一下。它实际上是从Route Me库中派生出来的,将允许您完成列表中的所有内容

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


    是一个使用MapBox SDK的iOS应用程序示例,它既有在线地图源,也有离线地图源,是一个很好的起点。

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

    由于Tilemill不以本机方式读取
    .osm/.o5m/.pbf
    文件,因此我使用渗透功能将
    .osm
    文件转换为
    .shp
    文件

    然后,我在Tilemill中创建了一个新项目,并将特定的
    .shp
    文件作为层添加到新项目中。要让地图看起来像你想要的那样需要一点修改,但它非常类似于css,并且很容易在运行时找到

    一旦我让地图按我想要的方式显示,我就将其导出为
    .mbtiles
    文件。这需要很长的时间来制作,文件可能非常大,这取决于瓷砖的详细程度。我画了一张爱尔兰地图,缩放级别在7-14之间(含7-14),我画了一张都柏林市地图,缩放级别在11-17之间(含11-17)。尽管都柏林市的地图上的瓷砖要少得多,但它们的大小都在200MB左右

    然后,我在网上找到了本教程,其中介绍了如何在应用程序中存储
    .mbtiles
    文件以及如何读取该文件:

    以下是我发现有用的几个其他链接:


    我希望这对其他人有用

    非常感谢您的回复,我将立即调查此事!您是如何减小.mbtiles文件的大小的?我这样问是因为我的也太大了,我可以在我的应用程序中导入它。我减少了一个应用程序中使用的层的数量。我将图像类型更改为png8(或其他更小的图像),并通过取出我不需要的东西来定制地图,这些东西仍然是70-80MB