Можем ли мы иметь функцию, которая может получить метаинформацию источника, чтобы узнать идентификатор слоя и тип слоя при добавлении неизвестных векторных плиток?
Можем ли мы иметь функцию, которая может получить метаинформацию источника для перечисления идентификатора и типа слоя при добавлении неизвестного сервиса векторных плиток? Я думаю, что это может помочь нам правильно оформить векторный сервис и создать стиль по умолчанию для разных слоев (точка - круг, полигон - заливка, линия - линия).
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. Посмотрите на консоль.
К сожалению, не существует стандартного способа перечислить все слои в источнике векторных листов. Источники Mapbox предоставляют vector_layers
объект в их TileJSON, но поскольку эта функция не является стандартной, она недоступна в GL JS API.