We build and maintain @geoql/v-maplibre, the Vue 3 components that wrap maplibre-gl. Import VMap, drop a `:options` prop, and get a fully reactive map with zero refs.
pnpm add @geoql/v-maplibre maplibre-gl<script setup lang="ts">
import { VMap, VControlScale, VControlNavigation } from '@geoql/v-maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';
import '@geoql/v-maplibre/dist/v-maplibre.css';
import type { MapOptions } from 'maplibre-gl';
const MAP_STYLE = 'https://maps.guru/api/v1/styles/standard/light/style.json?key=YOUR_API_KEY';
const options: MapOptions = {
style: MAP_STYLE,
center: [77.209, 28.6139],
zoom: 11,
hash: true,
};
</script>
<template>
<VMap :options="options" class="map-canvas" @loaded="onMapReady">
<VControlNavigation position="top-right" />
<VControlScale position="bottom-left" />
</VMap>
</template>
<style>
.map-canvas { width: 100%; height: 480px; }
</style>
Free-tier generous enough for real production traffic. 50,000 tile requests/month , no credit card.
Join developers worldwide who trust maps.guru for their mapping needs. Start free, no credit card required.