Skip to content

Draggable Marker

A map with a draggable marker

vue
<template>
  <mgl-map
    :map-style="style"
    :center="center"
    :zoom="zoom"
    height="300px"
  >
    <mgl-navigation-control />
    <mgl-marker
      v-model:coordinates="coordinates"
      :draggable="draggable"
      @dragstart="console.log('dragstart')"
      @drag="console.log('drag')"
      @dragend="console.log('dragend')"
    />
  </mgl-map>
  <label><input type="checkbox" v-model="draggable" />Enable draggable marker</label>
  <br />
  Marker coordinates: {{ coordinates }}
</template>

<script setup>
import {
  MglMap,
  MglNavigationControl,
  MglMarker
} from '@indoorequal/vue-maplibre-gl';
import { ref } from 'vue';

const style = `https://api.maptiler.com/maps/streets-v2/style.json?key=get_your_own_api_key_3YeFnghdqUJJpIvlgLti`;
const center = [12.550343, 55.665957];
const zoom = 8;
const coordinates = ref([12.550343, 55.665957]);
const draggable = ref(true);
</script>

<style lang="scss">
@import "maplibre-gl/dist/maplibre-gl.css";
</style>

Released under the MIT License.