当添加未知的矢量切片服务时,我们能否有一个功能可以获取源的元信息以列出图层的 id 和图层的类型?我认为这些可以帮助我们以正确的方式设置矢量服务的样式,并且可以为不同的图层(点--圆、多边形--填充、线--线)设置默认样式。
问问题
404 次
2 回答
2
您可以调用map.getStyle().layers
以查找当前样式中定义的图层。
以下是如何获得每一层的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);
});
这是相应的 jsfiddle。看看控制台。
于 2016-06-17T10:16:39.927 回答
1
不幸的是,没有标准方法可以列出矢量切片源中的所有图层。Mapbox 源vector_layers
在其 TileJSON 中提供了一个对象,但由于此功能不是标准的,因此在 GL JS API 中不可用。
于 2016-06-17T18:46:08.810 回答