UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

40 lines (39 loc) 1.15 kB
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; } }