UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

56 lines (55 loc) 1.77 kB
import TileLayer from 'ol/layer/WebGLTile'; import GeoTIFF from 'ol/source/GeoTIFF.js'; class CogManager { constructor(map) { Object.defineProperty(this, "map", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "basemapLayers", { enumerable: true, configurable: true, writable: true, value: [] }); Object.defineProperty(this, "activeLayers", { enumerable: true, configurable: true, writable: true, value: {} }); 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;