UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

38 lines (37 loc) 1.23 kB
import olVectorTileLayer from 'ol/layer/VectorTile.js'; import apply, { applyStyle } from 'ol-mapbox-style'; import LayerGroup from 'ol/layer/Group.js'; class VectorTilesManager { map; basemapLayers = []; constructor(map) { this.map = map; } removeAllBasemapLayers() { this.basemapLayers.forEach((basemap) => { this.map.removeLayer(basemap); }); this.basemapLayers = []; } /** * Adds a vectortiles basemap based on its layerName. If no layerName is provided, * will use apply from ol-mapbox-style to create all layers. * @param basemap */ addBasemapLayer(basemap) { let olayer; if (basemap.layerName) { olayer = new olVectorTileLayer({ declutter: true }); applyStyle(olayer, basemap.style, basemap.layerName); } else { olayer = new LayerGroup(); apply(olayer, basemap.style); } this.basemapLayers.push(olayer); // For basemap, set a minimal number (arbitrary defined to less than -5000) olayer.setZIndex(-5000 - basemap.order); this.map.getLayers().insertAt(0, olayer); } } export default VectorTilesManager;