import AdcdLayer from "./Markers/AdcdLayer"; import AdcdAllLayer from "./Markers/AdcdAllLayer"; import FzdxLayer from "./Markers/FzdxLayer"; import PicStLayer from "./Markers/PicStLayer"; import TuRangLayer from "./Markers/TuRangLayer" import HdswLayer from "./Markers/HdswLayer"; import XjHdswLayer from "./Markers/XjHdswLayer"; import XxjyswzLayer from "./Markers/XxjyswzLayer"; import ShuiKuLayer from "./Markers/ShuiKuLayer"; import ShuiDianZhanLayer from "./Markers/ShuiDianZhanLayer"; import GongShuiLayer from "./Markers/GongShuiLayer"; import YinShuiGongChengLayer from "./Markers/YinShuiGongChengLayer" import TangYanBaLayer from "./Markers/TangYanBaLayer"; import YHJMHLayer from "./Markers/YHJMHLayer"; import QSYDWLayer from "./Markers/QSYDWLayer"; import AZDLayer from "./Markers/AZDLayer"; import SLLayer from "./Markers/SLLayer"; import SYLayer from "./Markers/SYLayer"; import WYLayer from "./Markers/WYLayer"; import SmallSkRiskLayer from "./Markers/SmallSkRiskLayer"; import RhbjqLayer from "./Markers/RhbjqLayer"; import RealDrpLayer from "./Markers/RealDrpLayer"; import XjRealDrpLayer from "./Markers/XjRealDrpLayer"; import WarnLayer from "./Markers/WarnLayer"; import ForecastLayer from "./Markers/ForecastLayer"; import RadarLayer from "./Markers/RadarLayer"; import RealDrpAllLayer from "./Markers/RealDrpAllLayer"; import HdswAllLayer from "./Markers/HdswAllLayer"; import HeLiuZhuJiLayer from "./Markers/HeLiuZhuJiLayer" export default class LayerMgr { constructor() { this.layerMap = {}; this.layers = []; this.markerLayerMap = {}; } getLayer(name) { return this.layers.find(o => o.getLayerName() === name); } setVisible(visible) { visible = visible || {}; for (const layerName in visible) { const layerVisible = visible[layerName]; const layer = this.getLayer(layerName); if (!layer) { continue; } if (layerVisible != layer.isVisible()) { layer.setVisible(layerVisible); } } } setSetting(setting) { setting = setting || {}; for (const layer of this.layers) { layer.setSetting(setting); } } // called by discreate implementation _addAppMarkerLayers(dispatch, visible, setting, otherParams) { const clss = [ AdcdLayer, // AdcdAllLayer, ShuiKuLayer, GongShuiLayer, ShuiDianZhanLayer, TangYanBaLayer, YHJMHLayer, QSYDWLayer, AZDLayer, RealDrpLayer, RadarLayer, HdswLayer, RealDrpAllLayer, HdswAllLayer, SLLayer, SYLayer, WYLayer, HeLiuZhuJiLayer, // FzdxLayer, PicStLayer, TuRangLayer, // XjHdswLayer, // SmallSkRiskLayer, RhbjqLayer, XjRealDrpLayer, WarnLayer, ForecastLayer, RadarLayer, XxjyswzLayer ]; for (const cls of clss) { const layer = new cls({ visible: visible[cls.LayerName], setting, dispatch, otherParams }); this.addLayer(layer); this.markerLayerMap[cls.LayerName] = layer; } } sGetMarkerLayerComponentCls(layername) { const layer = this.markerLayerMap[layername]; if (!layer) { return null; } return layer.getComponentCls(); } sGetVisibleMarkers(layername, visible, setting, markerList) { //console.log(layername, visible, setting, markerList); const layer = this.markerLayerMap[layername]; if (!layer) { return null; } if (layer.sGetVisibleMarkers) { return layer.sGetVisibleMarkers(layername, visible, setting, markerList) } // 默认我们认为data的setting就是boolean的highligh if (visible) { return markerList; } if (markerList) { return markerList.filter(o => setting[o.id]); } return null; } }