mapbox как получить оригинальный слой - PullRequest
0 голосов
/ 27 июня 2019

Если я изменю стиль карты, 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если сменить стиль.

...