如何解析关于Mapbox矢量tile map的* .vector.pbf?

时间:2016-03-16 04:03:35

标签: openstreetmap mapbox osm.pbf

  1. *.pbf("Protocolbuffer Binary Format") is primarily intended as an alternative to the XML format.
  2. *.osm.pbf*.vector.pbf有两种格式。我可以使用哪些工具打开这些文件? (我知道JOSM可以打开* .osm.pbf文件,但它无法打开* .vector.pbf文件。)
  3. 如果我想在Mapbox中编写自己的* .vector.pbf文件,我该如何为此工作?
  4. 谢谢!

2 个答案:

答案 0 :(得分:3)

关于问题2,提取PBF数据

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

# cmd   show prog.  output format     output name     input name
ogr2ogr -progress -f "ESRI Shapefile" output          1583.vector.pbf 

关于问题3,创建PBF数据

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

# example source: https://gdal.org/drivers/vector/mvt.html
ogr2ogr -f MVT mytileset source.gpkg -dsco MAXZOOM=10

答案 1 :(得分:2)

Mapbox使用的Vector tile被序列化为Protocol Buffers。 协议缓冲区允许您有效地压缩磁贴内的矢量数据。

Mapbox Tile Specification在github上可用。 Esri has also adopted的产品规格相同。

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

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

在内部,Mapbox Studio使用tilelive API,因此您可以以编程方式生成切片。在list above中还有其他好的选择。