@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
35 lines (34 loc) • 1.13 kB
JavaScript
import olVectorTileLayer from 'ol/layer/VectorTile.js';
import { applyStyle } from 'ol-mapbox-style';
class VectorTilesManager {
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: []
});
this.map = map;
}
removeAllBasemapLayers() {
this.basemapLayers.forEach((basemap) => {
this.map.removeLayer(basemap);
});
this.basemapLayers = [];
}
addBasemapLayer(basemap) {
const olayer = new olVectorTileLayer({ declutter: true });
applyStyle(olayer, basemap.style, basemap.source);
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;