ol-source-tile-wms
Source for WMS servers providing tiled images.
Usage
<template>
<form>
<fieldset>
<label for="opacity-slider">Layer Opacity</label>
<input
type="range"
id="opacity-slider"
min="0"
max="1"
step="0.1"
v-model.number="layerOpacity"
/>
<span class="description">{{ layerOpacity }}</span>
<label for="visibility-toggle">Layer Visibility:</label>
<input type="checkbox" id="visibility-toggle" v-model="layerVisible" />
<span> {{ layerVisible ? "Visible" : "Hidden" }}</span>
</fieldset>
</form>
<ol-map
:loadTilesWhileAnimating="true"
:loadTilesWhileInteracting="true"
style="height: 400px"
>
<ol-view ref="view" :center="center" :zoom="zoom" />
<ol-zoom-control />
<ol-tile-layer :zIndex="1000">
<ol-source-osm />
</ol-tile-layer>
<ol-tile-layer
:zIndex="1001"
:opacity="layerOpacity"
:visible="layerVisible"
>
<ol-source-tile-wms
url="https://ahocevar.com/geoserver/wms"
:extent="[-13884991, 2870341, -7455066, 6338219]"
layers="topp:states"
serverType="geoserver"
:transition="0"
:params="{}"
/>
</ol-tile-layer>
</ol-map>
</template>
<script setup lang="ts">
import { ref } from "vue";
const zoom = ref(4);
const center = ref([-10997148, 4569099]);
const layerOpacity = ref(0.4);
const layerVisible = ref(true);
</script>
Properties
Props from OpenLayers
Properties are passed-trough from OpenLayers directly. Their types and default values can be checked-out in the official OpenLayers docs. Only some properties deviate caused by reserved keywords from Vue / HTML. This deviating props are described in the section below.
Deviating Properties
The following additional properties are available for setting specific params
.
layers
Sets / overrides the params.LAYERS
property.
- Type:
string
|unknown[]
styles
Sets / overrides the params.STYLES
property.
- Type:
string
|unknown[]
Events
You have access to all Events from the underlying source. Check out the official OpenLayers docs to see the available events tht will be fired.
<ol-source-tile-wms :url="imgUrl" @error="handleEvent" />
Methods
You have access to all Methods from the underlying source. Check out the official OpenLayers docs to see the available methods.
To access the source, you can use a ref()
as shown below:
<template>
<!-- ... -->
<ol-source-tile-wms :url="url" ref="sourceRef" />
<!-- ... -->
</template>
<script setup lang="ts">
import { ref, onMounted } from "vue";
import type TileWMS from "ol/source/TileWMS";
const sourceRef = ref<{ source: TileWMS }>(null);
onMounted(() => {
const source: TileWMS = sourceRef.value?.source;
// call your method on `source`
});
</script>