如何将 mbtile 转换为 .osm.pbf

G-L*_*G-L 5 qt mbtiles osm.pbf

我正在编写一个 Qt 应用程序,该应用程序应该在其视图之一中显示特定地理区域的地理地图,我需要能够在其上绘制各种其他图形元素。

要求是所有地图图块必须预先下载以供离线使用,因为在使用应用程序期间不会有互联网连接。

经过长时间搜索合适的库,我可以链接到我的 Qt 项目来支持我的需求(离线图块加载、在 Qt 框架中渲染和绘制地图、非 QML 仅 C++ 集成),我想到了libOsmScout可以完成这项工作。

但是,我设法从OpenMapTiles下载我所在区域的.mbtiles文件,只是为了意识到 libOsmScout 本身无法使用 .mbtiles。该库只能与.osm.pbf文件一起使用(“导入”后间接使用)。(http://libosmscout.sourceforge.net/tutorials/importing/)

我在网上进行了广泛的搜索,但所有结果都指向相反方向的转换过程,即转换为 .mbtiles。

所以我的问题是:是否可以将.mbtiles文件转换为.osm.pbf格式,以便我可以导入到 libOsmScout 兼容的内部文件集中?如果可以的话,流程是怎样的?

任何帮助或指导将不胜感激。谢谢。

Ama*_*cha 1

最简单的方法是使用ogr2​​ogr转换pbf格式。

 ogr2ogr -f MVT output_dir_name input.mbtiles -dsco MAXZOOM=2
Run Code Online (Sandbox Code Playgroud)

pbf这将创建一个目录结构,每个缩放级别都有一个根据图块位置命名的目录和文件。

或者

使用名为MBUtil的工具。

您可以从 github 存储库中执行一些步骤。之后,您可以使用以下命令将每个图块格式转换为目录结构pbf。

mb-util input.mbtiles output_dir_name image_format=pbf
Run Code Online (Sandbox Code Playgroud)

哪里tiles是你想要的目录名