ol-layerswitcherimage-control
A control for switching between layers.
To see the correct thumbnail images, you may have to set the property imagerySet
(e. g. for usage with BingMaps).
Usage
<template>
<ol-map ref="map" style="height: 400px" :controls="[]">
<ol-view
ref="view"
:center="center"
:rotation="rotation"
:zoom="zoom"
:projection="projection"
/>
<ol-tile-layer ref="jawgLayer" title="JAWG">
<ol-source-xyz
crossOrigin="anonymous"
url="https://c.tile.jawg.io/jawg-dark/{z}/{x}/{y}.png?access-token=87PWIbRaZAGNmYDjlYsLkeTVJpQeCfl2Y61mcHopxXqSdxXExoTLEv7dwqBwSWuJ"
/>
</ol-tile-layer>
<ol-tile-layer ref="bingLayer" title="Bing Maps">
<ol-source-bingmaps
apiKey="AjtUzWJBHlI3Ma_Ke6Qv2fGRXEs0ua5hUQi54ECwfXTiWsitll4AkETZDihjcfeI"
:imagerySet="'CanvasDark'"
/>
</ol-tile-layer>
<ol-tile-layer ref="osmLayer" title="OSM">
<ol-source-osm />
</ol-tile-layer>
<ol-layerswitcherimage-control v-if="layerList.length > 0" />
</ol-map>
</template>
<script setup>
import { ref, onMounted } from "vue";
const center = ref([40, 40]);
const projection = ref("EPSG:4326");
const zoom = ref(8);
const layerList = ref([]);
const jawgLayer = ref(null);
const osmLayer = ref(null);
const bingLayer = ref(null);
onMounted(() => {
layerList.value.push(jawgLayer.value.tileLayer);
layerList.value.push(bingLayer.value.tileLayer);
layerList.value.push(osmLayer.value.tileLayer);
});
</script>
Properties
selection
enable layer selection when click on the title
- Type:
boolean
displayInLayerSwitcher
function that takes a layer and return a boolean if the layer is displayed in the switcher, default test the displayInLayerSwitcher layer attribute
- Type:
function
show_progress
show a progress bar on tile layers
- Type:
boolean
- Default:
false
mouseover
show the panel on mouseover
- Type:
boolean
- Default:
false
reordering
allow layer reordering
- Type:
boolean
- Default:
true
trash
add a trash button to delete the layer
- Type:
boolean
- Default:
false
oninfo
callback on click on info button, if none no info button is shown DEPRECATED: use on(info) instead
- Type:
function
extent
add an extent button to zoom to the extent of the layer
- Type:
boolean
onextent
callback when click on extent, default fits view to extent
- Type:
function
drawDelay
delay in ms to redraw the layer (usefull to prevent flickering when manipulating the layers)
- Type:
number
collapsed
collapse the layerswitcher at beginning
- Type:
boolean
- Default:
true
layerGroup
a layer group to display in the switcher, default display all layers of the map
- Type:
ol.layerGroup
noScroll
prevent handle scrolling
- Type:
boolean
- Default:
false
onchangeCheck
optional callback on click on checkbox, you can call this method for doing operations after check/uncheck a layer. Layers attributes that control the switcher.
allwaysOnTop
{boolean
} true to force layer stay on top of the others while reordering, defaultfalse
displayInLayerSwitcher
{boolean
} display the layer in switcher, defaulttrue
noSwitcherDelete
{boolean
} to prevent layer deletion (w. trash option =true
), defaultfalse
Type:
function