@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
34 lines (33 loc) • 990 B
JavaScript
import TileLayer from 'ol/layer/Tile.js';
import OSM from 'ol/source/OSM.js';
class OsmManager {
map;
basemapLayers = {};
constructor(map) {
this.map = map;
}
removeAllBasemapLayers() {
for (const basemap of Object.values(this.basemapLayers)) {
this.map.removeLayer(basemap.olayer);
}
this.basemapLayers = {};
}
addBasemapLayer(layer) {
const olayer = new TileLayer({
source: new OSM()
});
this.basemapLayers[layer.treeItemId] = {
olayer: olayer,
layerOsm: layer
};
// For basemap, set a minimal number (arbitrary defined to less than -5000)
olayer.setZIndex(-5000 - layer.order);
this.map.addLayer(olayer);
}
changeOpacity(layerInfos) {
if (layerInfos.hasValidOpacity) {
this.basemapLayers[layerInfos.treeItemId].olayer.setOpacity(layerInfos.opacity);
}
}
}
export default OsmManager;