vue-ol-comp

0.1.3 • Public • Published

vue-ol-comp Lint Open in StackBlitz

This composable exposes reactive variables to make the state of an OpenLayers map available in Vue. It provides easy access to commonly used variables such as map, layers, center, extent, zoom, pointerCoordinate, pointerPixel, and more. See src/composables/useOl.ts for implementation details.

Demo application: https://jakobmiksch.github.io/vue-ol-comp/

Usage

# install
npm install vue-ol-comp

Initialize or edit the map in any component, for example in App.vue:

<script setup lang="ts">
import { fromLonLat } from 'ol/proj'
import { onMounted } from 'vue'
import { useOl, OlMap } from 'vue-ol-comp'
import TileLayer from 'ol/layer/Tile'
import OSM from 'ol/source/OSM'

const { map } = useOl()

onMounted(() => {
  map.value.addLayer(
    new TileLayer({
      source: new OSM()
    })
  )

  map.value.getView().setCenter(fromLonLat([11, 47]))
  map.value.getView().setZoom(15)
})
</script>

The map can be added to any component like this:

<template>
  <OlMap :style="{ width: '500px', height: '100px' }"/>
</template>

Make sure ol/ol.css is imported in your CSS.

Development

The development is done using a demo app, where all features can directly be tested.

# install dependencies
npm install

# run the development application
npm run dev

The application will be accessible at http://localhost:5173/

Alternatives ways to use OpenLayers in Vue

  • directly without any additional library. This is done in the application template Wegue or described in this blog post
  • using a component library like vue3-openlayers (for Vue 3) or vuelayers (for Vue 2) that let's one configure the map via the <template> section

Package Sidebar

Install

npm i vue-ol-comp

Weekly Downloads

4

Version

0.1.3

License

MIT

Unpacked Size

42.2 kB

Total Files

10

Last publish

Collaborators

  • jakobmiksch