在添加未知的矢量图块服务时,我们是否可以使用能够获取源的元信息以列出图层的id和图层类型的功能?我认为这些可以帮助我们以正确的方式设置矢量服务的样式,并且可以为不同的层(点 - 圆,多边形 - 填充,线 - 线)创建默认样式。
答案 0 :(得分:1)
您可以致电id
查找当前样式中定义的图层。
以下是获取每个图层的type
和var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/light-v9',
zoom: 13,
center: [-122.447303, 37.753574]
});
map.on('load', function () {
var layersMeta = map.getStyle().layers
.map(function(layer) {
return [layer.id, layer.type];
});
console.log(layersMeta);
});
的方法:
String teacher = "";
这是the corresponding jsfiddle。看一下控制台。
答案 1 :(得分:1)
遗憾的是,没有标准方法列出矢量切片源中的所有图层。 Mapbox源在其TileJSON中提供了vector_layers
对象,但由于此功能不是标准的,因此在GL JS API中不可用。