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

问题描述 投票:0回答:4

我有一个 .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,否则

openstreetmap vector-tiles osm.pbf
4个回答
3
投票

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


2
投票

您可以使用ogr2ogr(请参阅其他答案此处)将osm.pbf转换为geojson,然后使用Mapbox的tippecanoe工具将geojson转换为mbtiles。


2
投票

提取
.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

2023-08-17 编辑

使用

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

0
投票

可能的解决方案:

1.可能是RAM问题尝试使用tilemaker运行小尺寸的osm.pbf文件

2.从可执行文件运行tilemaker.exe(通过从githubtilemaker克隆进行构建)--->它可以解决大多数问题

© www.soinside.com 2019 - 2024. All rights reserved.