tsg-web/src/views/Home/MapCtrl/layermgr.js

136 lines
3.7 KiB
JavaScript
Raw Normal View History

2024-09-20 15:02:50 +08:00
import AdcdLayer from "./Markers/AdcdLayer";
import AdcdAllLayer from "./Markers/AdcdAllLayer";
import FzdxLayer from "./Markers/FzdxLayer";
import PicStLayer from "./Markers/PicStLayer";
2025-03-28 17:31:43 +08:00
import TuRangLayer from "./Markers/TuRangLayer"
2024-09-20 15:02:50 +08:00
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,
2025-03-28 17:31:43 +08:00
TuRangLayer,
2024-09-20 15:02:50 +08:00
// 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;
}
}