Maplibre plugin to add basemaps layer switcher
npm install maplibre-basemapsCheck the demo here Link
``bash`
npm install maplibre-gl maplibre-basemaps
or
`html`
jsx
import Maplibre from 'maplibre-gl';
import BasemapControl from 'maplibre-basemaps';
`Example usage
Check docs/index.html for example implementation.
`Javascript
const osm = {
name: "Open Street Map",
tiles: ['https://tile.openstreetmap.org/{z}/{x}/{y}.png'],
maxzoom: 18,
attribution: 'osm'
}
const osmHot = {
name: "OSM HOT",
tiles: ['https://a.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png'],
}
const osmCycle = {
name: "OSM Cycle",
tiles: ['https://a.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png'],
}
const esriTerrain = {
name: "Esri Terrain",
tiles: ['https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}'],
maxzoom: 13,
attribution: 'Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS',
}
const baseLayers = {
osm,
osmHot,
osmCycle,
esriTerrain,
}
const basemapControl = new BasemapControl({ basemaps: baseLayers, initialBasemap: "osmHot" });
map.addControl(basemapControl, 'top-right');
`$3
`Javascript
map.removeControl(basemapControl);
`$3
-
basemaps - BaseLayerConfig, base layers objects, required
- initialBasemap - string, basemap key to visualize, default: first basemap
- width - string, width for basemaps layers container, default: '150px'
- height - string, height for basemaps layers container, default: '100px'
- keepOpen - boolean, keep radiocontrol open, change state only when layercontrol button is clicked default: falseLayer Configuration
-
name - string, name to visualize layer in container, required
- tiles - string[], urls of basemap layer, required
- attribution - string, attribution for basemap layer, optional
- minZoom - number, min zoom to display the grid, default: 0
- maxZoom` - number, max zoom to display the grid , default: 20