134 lines
3.6 KiB
JavaScript
134 lines
3.6 KiB
JavaScript
|
|
import AdcdLayer from "./Markers/AdcdLayer";
|
||
|
|
import AdcdAllLayer from "./Markers/AdcdAllLayer";
|
||
|
|
import FzdxLayer from "./Markers/FzdxLayer";
|
||
|
|
import PicStLayer from "./Markers/PicStLayer";
|
||
|
|
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,
|
||
|
|
// 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;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|