@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
40 lines (39 loc) • 1.15 kB
JavaScript
export default class DrawingManager {
activeLayers = {};
map;
constructor(map) {
this.map = map;
}
addLayer(layer) {
let oLayer = this.getLayer(layer);
if (!oLayer) {
oLayer = layer._oLayer;
this.activeLayers[layer.treeItemId] = { layer: layer, olayer: oLayer };
}
if (!this.map.getLayers().getArray().includes(oLayer)) {
this.map.addLayer(oLayer);
}
}
removeLayer(layer) {
if (this.layerExists(layer)) {
const oLayer = this.activeLayers[layer.treeItemId].olayer;
this.map.removeLayer(oLayer);
}
else {
throw new Error('Cannot remove this layer: it does not exist');
}
}
getLayer(layer) {
if (this.layerExists(layer)) {
return this.activeLayers[layer.treeItemId].olayer;
}
return null;
}
changeOpacity(layer) {
const oLayer = this.activeLayers[layer.treeItemId].olayer;
oLayer.setOpacity(layer.opacity);
}
layerExists(layer) {
return layer.treeItemId in this.activeLayers;
}
}