Если я изменю стиль карты, mapbox потеряет источник и слой.Поэтому я хочу получить оригинальный слой и заново добавить слой после перезагрузки нового стиля.
Вот плохой случай: https://codepen.io/ahuigo/pen/vqObBp
var origin_data = [];
function switchStyle(style) {
var layerId = style.target.id;
var {type, _data} = map.getSource('point1')
var source = {type, data:_data}
var sourceLayer = map.getLayer('point1')
console.log('',source,sourceLayer)
origin_data = []
origin_data.push(['point1',source, sourceLayer])
map.setStyle('mapbox://styles/mapbox/' + layerId);
}
map.on('style.load', ()=> {
for(let [id, source,sourceLayer] of origin_data) {
console.log(id,source,sourceLayer)
if(source){
map.addSource(id, source)
map.addLayer(sourceLayer)
}
}
//addSource(); reloadLayer()
});
Этот случай показывает, что слой потерь mapboxесли сменить стиль.