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

Is there a way to generate a .mbtiles file from .osm.pbf file

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

我目前在 windows 机器上使用 docker,我尝试使用工具 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 否则

您可以使用 ogr2ogr(参见其他答案 here) to translate osm.pbf into geojson, and then Mapbox's tippecanoe 工具将 geojson 转换为 mbtiles。

我制作了一个关于如何使用 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 的输出效果最佳,边框仍然缺失,因此较低的缩放级别看起来很空。

可能的解决方案:

1.Might 是 RAM 问题尝试 运行 小尺寸 osm.pbf 文件与 tilemaker

2.Run tilemaker.exe 来自可执行文件(通过从 github tilemaker 克隆构建)---> 它可以解决大部分问题