ss-dp/src/views/Home/MapCtrl/layermgr.js

97 lines
2.2 KiB
JavaScript
Raw Normal View History

2026-02-06 11:00:16 +08:00
import AdcdLayer from "./Markers/AdcdLayer";
import RealDrpLayer from "./Markers/RealDrpLayer";
import HdswLayer from "./Markers/HdswLayer";
import GongShuiLayer from "./Markers/GongShuiLayer"
import PicStLayer from "./Markers/PicStLayer"
import WYLayer from "./Markers/WYLayer"
import SYLayer from "./Markers/SYLayer"
import SLLayer from "./Markers/SLLayer"
import AZDLayer from "./Markers/AZDLayer"
import QSYDWLayer from "./Markers/QSYDWLayer";
import YHJMHLayer from "./Markers/YHJMHLayer";
import ShuiKuLayer from "./Markers/ShuiKuLayer";
import ShuiDianZhanLayer from "./Markers/ShuiDianZhanLayer";
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);
}
}
_addAppMarkerLayers(dispatch, visible, setting) {
const clss = [
AdcdLayer,
RealDrpLayer,
HdswLayer,
GongShuiLayer,
PicStLayer,
WYLayer,
SYLayer,
SLLayer,
AZDLayer,
QSYDWLayer,
YHJMHLayer,
ShuiKuLayer,
ShuiDianZhanLayer,
];
for (const cls of clss) {
const layer = new cls({ visible: visible[cls.LayerName], setting, dispatch });
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) {
const layer = this.markerLayerMap[layername];
if (!layer) {
return null;
}
if (visible) {
return markerList;
}
return null;
}
}