ol-source-bingmaps
Layer source for Bing Maps API
ol-source-bingmaps
adds ability to display tile data from Bing Maps. To use this source you should get API key at https://www.bingmapsportal.com.
Usage
Example of ol-source-bingmaps
usage
<template>
<select v-model="selected" class="select-default">
<option value="AerialWithLabels">AerialWithLabels</option>
<option value="RoadOnDemand">RoadOnDemand</option>
<option value="CanvasDark">CanvasDark</option>
</select>
<ol-map
:loadTilesWhileAnimating="true"
:loadTilesWhileInteracting="true"
style="height: 400px"
>
<ol-view
ref="view"
:center="center"
:rotation="rotation"
:zoom="zoom"
:projection="projection"
/>
<ol-tile-layer>
<ol-source-bingmaps
apiKey="AjtUzWJBHlI3Ma_Ke6Qv2fGRXEs0ua5hUQi54ECwfXTiWsitll4AkETZDihjcfeI"
:imagerySet="selected"
/>
</ol-tile-layer>
</ol-map>
</template>
<script setup>
import { ref } from "vue";
const center = ref([40, 40]);
const projection = ref("EPSG:4326");
const zoom = ref(8);
const rotation = ref(0);
const selected = ref("AerialWithLabels");
</script>
<template>
<select v-model="selected" class="select-default">
<option value="AerialWithLabels">AerialWithLabels</option>
<option value="RoadOnDemand">RoadOnDemand</option>
<option value="CanvasDark">CanvasDark</option>
</select>
<ol-map
:loadTilesWhileAnimating="true"
:loadTilesWhileInteracting="true"
style="height: 400px"
>
<ol-view
ref="view"
:center="center"
:rotation="rotation"
:zoom="zoom"
:projection="projection"
/>
<ol-tile-layer>
<ol-source-bingmaps
apiKey="AjtUzWJBHlI3Ma_Ke6Qv2fGRXEs0ua5hUQi54ECwfXTiWsitll4AkETZDihjcfeI"
:imagerySet="selected"
/>
</ol-tile-layer>
</ol-map>
</template>
<script setup>
import { ref } from "vue";
const center = ref([40, 40]);
const projection = ref("EPSG:4326");
const zoom = ref(8);
const rotation = ref(0);
const selected = ref("AerialWithLabels");
</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
key
➡ apiKey
The property key
from OpenLayers BingMaps is exposed as apiKey
as the key
attribute is reserved in Vue and cannot be used as a component property. Please refer to the key
property in the official OpenLayers docs but pass it as apiKey
.
<ol-source-bingmaps apiKey="YOUR_API_KEY" />
<ol-source-bingmaps apiKey="YOUR_API_KEY" />
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-bingmaps apiKey="YOUR_API_KEY" @error="handleEvent" />
<ol-source-bingmaps apiKey="YOUR_API_KEY" @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-bingmaps apiKey="YOUR_API_KEY" ref="sourceRef" />
<!-- ... -->
</template>
<script setup lang="ts">
import { ref, onMounted } from "vue";
import type BingMaps from "ol/source/BingMaps";
const sourceRef = ref<{ source: BingMaps }>(null);
onMounted(() => {
const source: BingMaps = sourceRef.value?.source;
// call your method on `source`
});
</script>
<template>
<!-- ... -->
<ol-source-bingmaps apiKey="YOUR_API_KEY" ref="sourceRef" />
<!-- ... -->
</template>
<script setup lang="ts">
import { ref, onMounted } from "vue";
import type BingMaps from "ol/source/BingMaps";
const sourceRef = ref<{ source: BingMaps }>(null);
onMounted(() => {
const source: BingMaps = sourceRef.value?.source;
// call your method on `source`
});
</script>