import LayerMgr from "../layermgr"; import BouaLayer3D from "./layers/BouaLayer3D"; import RainLayer3D from "./layers/RainLayer3D"; import RainLayer3DRadar from "./layers/RainLayer3D-radar"; import RainLayer3DRh from "./layers/RainLayer3D-rh"; import HLLayer3D from "./layers/HLLayer3D"; import XLYLayer3D from "./layers/XLYLayer3D"; export default class LayerMgr3D extends LayerMgr { constructor(viewer) { super(); this.viewer = viewer; this.highlightEnts = []; } /** * 添加图层 * @param {@BaseLayer} */ addLayer(layer) { this.layers.push(layer); if (layer.onAdd) { layer.onAdd(this.viewer); } return layer; } destroy() { for (const layer of this.layers) { layer.destroy(); } this.viewer.entities.removeAll(); this.viewer.imageryLayers.removeAll() } frameUpdate() { const tm = Date.now(); for (const layer of this.layers) { if (layer.onFrameUpdate) { layer.onFrameUpdate(tm, this.viewer); } } } /** * */ addAppLayers(dispatch, visible, setting, otherParams) { visible = visible || {}; this.addLayer(new BouaLayer3D({ visible: visible[BouaLayer3D.LayerName], setting, dispatch })); if(visible[RainLayer3D.LayerName]){ this.addLayer(new RainLayer3D({ visible: visible[RainLayer3D.LayerName], setting, dispatch })); }else{ //this.viewer.imageryLayers.removeAll(); this.viewer.entities.removeAll(); } if(visible[RainLayer3DRadar.LayerName]){ this.addLayer(new RainLayer3DRadar({ visible: visible[RainLayer3DRadar.LayerName], setting, dispatch })); }else{ //this.viewer.imageryLayers.removeAll(); this.viewer.entities.removeAll(); } if(visible[RainLayer3DRh.LayerName]){ this.addLayer(new RainLayer3DRh({ visible: visible[RainLayer3DRh.LayerName], setting, dispatch })); }else{ //this.viewer.imageryLayers.removeAll(); RainLayer3DRh this.viewer.entities.removeAll(); } if(visible[HLLayer3D.LayerName]){ this.addLayer(new HLLayer3D({ visible: visible[HLLayer3D.LayerName], setting, dispatch })); }else{ //this.viewer.imageryLayers.removeAll(); this.viewer.entities.removeAll(); } if(visible[XLYLayer3D.LayerName]){ this.addLayer(new XLYLayer3D({ visible: visible[XLYLayer3D.LayerName], setting, dispatch })); }else{ //this.viewer.imageryLayers.removeAll(); this.viewer.entities.removeAll(); } this._addAppMarkerLayers(dispatch, visible, setting, otherParams); } }