我有一个 .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 的输出效果最佳,边框仍然缺失,因此较低的缩放级别看起来很空。
您可以使用ogr2ogr(请参阅其他答案此处)将osm.pbf转换为geojson,然后使用Mapbox的tippecanoe工具将geojson转换为mbtiles。
.pbf
至 .mbtiles
brew install osmium-tool
brew install tippecanoe
提取
.pbf
至 .geojson
osmium export xxx.pbf -o xxx.geojson
提取
.geojson
至 .mbtiles
tippecanoe -zg -o xxx.mbtiles --drop-densest-as-needed xxx.geojson
使用
tilemaker
是更好的选择
git clone https://github.com/systemed/tilemaker.git
cd tilemaker
docker build -t tilemaker .
docker run --rm -it -v $(pwd):/srv tilemaker --input=/srv/xxx.osm.pbf --output=/srv/xxx.mbtiles
可能的解决方案:
1.可能是RAM问题尝试使用tilemaker运行小尺寸的osm.pbf文件
2.从可执行文件运行tilemaker.exe(通过从githubtilemaker克隆进行构建)--->它可以解决大多数问题