Можем ли мы иметь функцию, которая может получить метаинформацию источника для перечисления идентификатора слоя и типа слоя при добавлении неизвестного сервиса векторных листов? Я думаю, что это может помочь нам правильно стилизовать векторный сервис и может сделать стиль по умолчанию для разных слоев (точка-круг, многоугольник-заливка, линия-линия).
Можем ли мы иметь функцию, которая может получить метаинформацию источника, чтобы узнать идентификатор слоя и тип слоя при добавлении неизвестных сервисов векторных листов?
Ответы (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. Взгляните на консоль.
person
kmandov
schedule
17.06.2016
Я имею в виду, что если я не знаю исходные слои. Например:
map.addSource()
добавить пользовательский сервис векторных слоев, поэтому, возможно, иногда мы не знаем идентификатор исходного слоя и имя слоя, поэтому, если есть функция для получения исходного слоя метаинформация может быть очень полезной, поэтому мы можем добавить источник со стилем по умолчанию.
- person wandergis; 17.06.2016
К сожалению, нет стандартного способа перечислить все слои в источнике векторных листов. Источники Mapbox предоставляют объект vector_layers
в своем TileJSON, но поскольку эта функция не является стандартной, она недоступна в GL JS API.
person
Lucas Wojciechowski
schedule
17.06.2016