如何解析关于 Mapbox 矢量瓦片地图的 *.vector.pbf?

kev*_*n4z 2 openstreetmap mapbox osm.pbf

  1. *.pbf("Protocolbuffer Binary Format") 主要用于替代 XML 格式。
  2. 有两种格式*.osm.pbf*.vector.pbf。我可以使用哪些工具打开这些文件?(我知道JOSM可以打开 *.osm.pbf 文件,但它不能打开 *.vector.pbf 文件。)
  3. 如果我想在 Mapbox 中编写自己的 *.vector.pbf 文件,我该如何工作?

谢谢!

kma*_*dov 7

Mapbox 使用的矢量图块被序列化为协议缓冲区。协议缓冲区允许您有效地压缩图块内的矢量数据。

Mapbox Tile 规范可在 github 上找到。Esri也为其产品采用了相同的规范。

您可以在这里找到解析器、渲染器和 CLI 实用程序的列表: https: //github.com/mapbox/awesome-vector-tiles

在常见场景中,您可以使用mapbox-gl-js在客户端渲染矢量图块。要生成矢量切片,您可以使用Mapbox Studio。这需要在 Studio 中在线上传您的数据。您还可以使用Mapbox Studio Classic(旧版本)在本地生成图块。

在内部,Mapbox Studio 使用tilelive API,因此您可以通过编程方式生成图块。在上面的列表中还有其他不错的选择。


Cyr*_*lle 5

关于问题#2,提取 PBF 数据

使用 GDAL 的 ogr2ogr 是最简单的方法(我发现)。给定一个名为的文件,将其1583.vector.pbf解码为一个名为 的 shapefile(文件夹)output

# cmd   show prog.  output format     output name     input name
ogr2ogr -progress -f "ESRI Shapefile" output          1583.vector.pbf 
Run Code Online (Sandbox Code Playgroud)

关于问题 #3,创建 PBF 数据

使用与上面相同的命令,但交换输入/输出和输出格式:

# example source: https://gdal.org/drivers/vector/mvt.html
ogr2ogr -f MVT mytileset source.gpkg -dsco MAXZOOM=10
Run Code Online (Sandbox Code Playgroud)