Get/list 来自 Mapbox GL JS 矢量源的源层

Get/list source-layers from Mapbox GL JS vector source

在 Mapbox GL JS 中,我从本地托管的 mbtiles 文件添加矢量切片源。将此源添加到我的地图实例很容易,如下所示。

map.addSource("polylinesSource",{
      "type":"vector",      
      "tiles": [
       "http://localhost:8000/polylinesJoined/{z}/{x}/{y}.pbf"
      ]
    })

来自此服务的源层将是动态的,我希望有一种方法可以在源加载后引用所有这些层。加载后是否可以列出源中的所有图层?

这做起来非常繁琐。 Mapbox-GL-JS 没有公开任何方法来列出瓦片集中可用的矢量瓦片源图层。

我建了vector inspector to solve this exact problem. The code here shows you the process for extracting that information from a .pbf: https://github.com/stevage/vector-inspector-api/blob/master/server.js

或者,由于您有本地 mbtiles 文件,另一种选择是在本地提取它。使用我构建的另一个工具,tileinfo.

此外,如果您使用 tessera 之类的方式提供图块,您可以直接在 TileJSON 端点访问图层信息。