UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

41 lines (40 loc) 1.3 kB
import TileLayer from 'ol/layer/WebGLTile.js'; import GeoTIFF from 'ol/source/GeoTIFF.js'; class CogManager { map; basemapLayers = []; activeLayers = {}; constructor(map) { this.map = map; } removeAllBasemapLayers() { this.basemapLayers.forEach((basemap) => { this.map.removeLayer(basemap); }); this.basemapLayers = []; } addBasemapLayer(layer) { const source = new GeoTIFF({ sources: [{ url: layer.source }] }); const olayer = new TileLayer({ source: source }); this.basemapLayers.push(olayer); // For basemap, set a minimal number (arbitrary defined to less than -5000) olayer.setZIndex(-5000 - layer.order); this.map.addLayer(olayer); } addLayer(layer) { const source = new GeoTIFF({ sources: [{ url: layer.source }] }); const olayer = new TileLayer({ source: source }); this.map.addLayer(olayer); this.activeLayers[layer.treeItemId] = { layer: layer, olayer: olayer }; } removeLayer(layer) { const olayer = this.activeLayers[layer.treeItemId].olayer; delete this.activeLayers[layer.treeItemId]; this.map.removeLayer(olayer); } } export default CogManager;