UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

52 lines (51 loc) 1.68 kB
import TileLayer from 'ol/layer/Tile'; import { XYZ } from 'ol/source'; class XyzManager { 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 XYZ({ 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 XYZ({ 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 XyzManager;