tsg-web/src/views/Home/MapCtrl/Map3D/layermgr3d.js

92 lines
2.6 KiB
JavaScript

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 || {};
dispatch.map.setMap(this.viewer);
// 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);
}
}