Skip to content

Commit 95fd457

Browse files
pjreedd-koppenhagen
authored andcommitted
Add VectorImageLayer demo
1 parent a2c52aa commit 95fd457

File tree

3 files changed

+59
-2
lines changed

3 files changed

+59
-2
lines changed

docs/.vitepress/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ export default defineConfig({
7676
text: "ol-tile-layer",
7777
link: "/componentsguide/layers/tilelayer/",
7878
},
79+
{
80+
text: "ol-vector-image-layer",
81+
link: "/componentsguide/layers/vectorimagelayer/",
82+
},
7983
{
8084
text: "ol-vector-layer",
8185
link: "/componentsguide/layers/vectorlayer/",

docs/componentsguide/layers/vectorimagelayer/index.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
ol-vector-image-layer can render vector from various backend services. It should be used with together with ol-source-vector component.
44

5+
Vector data is rendered client-side, to an image, which yields much better performance than ol-vector-layer during panning and zooming operations, but point symbols and texts are always rotated with the view and pixels are scaled during zoom animations.
6+
57
<script setup>
6-
import VectorSourceDemo1 from "@demos/VectorSourceDemo1.vue"
8+
import VectorSourceDemo4 from "@demos/VectorSourceDemo4.vue"
79
</script>
810

911
<ClientOnly>
10-
<VectorSourceDemo1 />
12+
<VectorSourceDemo4 />
1113
</ClientOnly>
1214

1315
## Usage

src/demos/VectorSourceDemo4.vue

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<template>
2+
<ol-map
3+
:loadTilesWhileAnimating="true"
4+
:loadTilesWhileInteracting="true"
5+
style="height: 400px"
6+
>
7+
<ol-view
8+
ref="view"
9+
:center="center"
10+
:rotation="rotation"
11+
:zoom="zoom"
12+
:projection="projection"
13+
/>
14+
15+
<ol-tile-layer>
16+
<ol-source-osm />
17+
</ol-tile-layer>
18+
19+
<ol-vector-image-layer>
20+
<ol-source-vector :url="url" :format="geoJson"> </ol-source-vector>
21+
</ol-vector-image-layer>
22+
</ol-map>
23+
</template>
24+
25+
<script>
26+
import { ref, inject } from "vue";
27+
export default {
28+
setup() {
29+
const center = ref([0, 0]);
30+
const projection = ref("EPSG:4326");
31+
const zoom = ref(3);
32+
const rotation = ref(0);
33+
34+
const url = ref(
35+
"https://openlayers.org/en/latest/examples/data/geojson/countries.geojson"
36+
);
37+
const format = inject("ol-format");
38+
console.log(format);
39+
const geoJson = new format.GeoJSON();
40+
41+
return {
42+
center,
43+
projection,
44+
zoom,
45+
rotation,
46+
url,
47+
geoJson,
48+
};
49+
},
50+
};
51+
</script>

0 commit comments

Comments
 (0)