mapbox如何获取原始图层

时间:2019-06-27 08:21:39

标签: mapbox-gl-js mapbox-gl

如果更改地图样式,则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会丢失图层。

0 个答案:

没有答案