有没有办法从 .osm.pbf 文件生成 .mbtiles 文件

问题描述

我有一个 .osm.pbf 文件,我想用它来生成带有 (.mbtiles) 的矢量切片。

我目前在使用 docker 的 Windows 机器上,我尝试使用工具 tilemaker (https://github.com/systemed/tilemaker),但我无法让它处理我的文件并遇到类似问题

" 抛出“std::runtime_error”实例后调用终止 what():zlib 解压期间的异常:(-5) "

我只是想知道是否还有其他人能够从所述文件类型生成这些图块,如果可以,您能否提供有关如何操作的低级详细指南,因为我是矢量图块的新手,并且在某些方面感到困惑情况。

对于任何有兴趣的人,我使用此代码来运行 docker:

docker run tilemaker tilemaker --input=sud-latest.osm.pbf --output=sud.mbtiles

我必须把 tilemaker 放两次,否则它说它不能打开 .osm.pbf 否则

解决方法

我制作了一个关于如何使用 maptiler 生成图块的教程: https://blog.kleunen.nl/blog/tilemaker-generate-map

它专注于 linux,但您也可以在 windows 上运行它。您可以在 CI 上找到预构建版本的 maptiler: https://github.com/systemed/tilemaker/pull/208/checks?check_run_id=2143761163

可能很快它们也将在 github 页面上可用。 一旦你有了预构建的可执行文件和资源(配置和处理 lua),你可以简单地做:

tilemaker.exe --input=sud-latest.osm.pbf --output=sud.mbtiles --process resources/process-openmaptiles.lua --config resources/config-openmaptiles.json

输出在缩放级别 8 - 14 时效果最佳,边框仍然缺失,因此较低的缩放级别看起来很空。

,

您可以使用ogr2​​ogr(参见其他答案here)将osm.pbf 转换为geojson,然后使用Mapbox's tippecanoe 工具将geojson 转换为mbtiles。