tsg-web/src/views/Home/MapCtrl/Markers/AdcdLayer.js

53 lines
1.2 KiB
JavaScript

import BaseLayer from "../baselayer";
import AdcdMarker from "./AdcdMarker";
import {AgnpPromise, xzList} from "../../../../models/_/common";
export default class AdcdLayer extends BaseLayer {
static LayerName = 'AdcdLayer';
constructor(props) {
super(props);
this.highlights = {};
}
getLayerName() {
return AdcdLayer.LayerName;
}
async onAdd() {
const agnp = await AgnpPromise.get();
const xzLabel = agnp.filter(o => o.LEVEL === 4 || o.LEVEL === 5 || o.LEVEL === 6).map(o => ({
...o,
stcd: o.OBJECTID,
level: o.LEVEL,
id: o.OBJECTID,
type: 'label'
}))
this._dispatch.runtime.setMarkers({
[this.getLayerName()]: xzLabel || []
});
}
setSetting(setting) {
const highlights = setting?.highlight?.AdcdLayer;
if (highlights !== this._setting?.highlight?.AdcdLayer) {
const setting = {};
if (highlights) {
for (const h of highlights) {
setting[h] = true
}
}
this._dispatch.map.setMarkerSetting({
[this.getLayerName()]: setting,
});
}
this._setting = setting;
}
getComponentCls() {
return AdcdMarker;
}
}