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

95 lines
2.8 KiB
JavaScript
Raw Normal View History

2025-08-07 11:28:32 +08:00
import LayerMgr from "../layermgr";
import BouaLayer3D from "./layers/BouaLayer3D";
import RainLayer3D from "./layers/RainLayer3D";
2025-10-14 13:57:38 +08:00
import WxqLayer3D from "./layers/WxqLayer3D"
2025-08-07 11:28:32 +08:00
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();
}
2025-10-21 13:53:39 +08:00
this.viewer.dataSources.removeAll();
2025-08-07 11:28:32 +08:00
this.viewer.entities.removeAll();
this.viewer.imageryLayers.removeAll()
2025-10-21 13:53:39 +08:00
this.viewer.destroy();
2025-08-07 11:28:32 +08:00
}
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 || {};
2025-10-09 17:22:42 +08:00
dispatch.map.setMap(this.viewer);
2025-08-07 18:42:39 +08:00
// this.addLayer(new BouaLayer3D({ visible: visible[BouaLayer3D.LayerName], setting, dispatch }));
2025-08-07 11:28:32 +08:00
2025-08-07 18:42:39 +08:00
// if(visible[RainLayer3D.LayerName]){
// this.addLayer(new RainLayer3D({ visible: visible[RainLayer3D.LayerName], setting, dispatch }));
// }else{
// //this.viewer.imageryLayers.removeAll();
// this.viewer.entities.removeAll();
// }
2025-10-14 13:57:38 +08:00
this.addLayer(new WxqLayer3D({ visible: visible[WxqLayer3D.LayerName], setting, dispatch }));
2025-08-07 18:42:39 +08:00
// 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();
// }
2025-08-07 11:28:32 +08:00
2025-08-07 18:42:39 +08:00
// 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();
// }
2025-08-07 11:28:32 +08:00
this._addAppMarkerLayers(dispatch, visible, setting, otherParams);
}
}