Skip to content

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

vue
<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, default false

  • displayInLayerSwitcher {boolean} display the layer in switcher, default true

  • noSwitcherDelete {boolean} to prevent layer deletion (w. trash option = true), default false

  • Type: function