【问题标题】:How to store openstreetmap data locally on an iphone如何在 iPhone 上本地存储 openstreetmap 数据
【发布时间】:2013-04-09 09:57:58
【问题描述】:

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

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

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

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

  3. 在我的 iOS 应用程序中以地图的形式查看该数据

  4. 在地图上放置标记。

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

我已经在这个项目的这个特定部分上工作了好几个星期,但我却一无所获。我什至无法弄清楚如何在手机上存储地图,更不用说查看地图数据了。我尝试使用“Route-Me”库,但无法使其正常工作(尽管它似乎是使用 openstreetmap 数据的最佳库之一,所以我正在学习如何使用它)。我觉得被打败了。

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

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

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

【问题讨论】:

    标签: ios ios6 openstreetmap


    【解决方案1】:

    这就是我最终解决问题的方法。

    由于 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

    我希望这对某人有用

    【讨论】:

    • 您采取了哪些措施来减小 .mbtiles 文件的大小?我问是因为我的也太大了,我可以在我的应用程序中导入它。
    • 我减少了我使用的图层数量。我将图像类型更改为 png8(或任何较小的),并通过取出不需要的东西来定制地图,仍然约为 70-80 MB
    【解决方案2】:

    我建议尝试MapBox iOS SDK。它实际上是从 Route-Me 库中派生出来的,可以让你完成列表中的所有事情。

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

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

    【讨论】:

    • 非常感谢您的回复,我会马上调查的!
    猜你喜欢
    • 2011-12-23
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多