Vue.js is one of the most approachable JavaScript frameworks for building user interfaces, and it pairs beautifully with modern mapping libraries. Whether you want a 2D OpenLayers map with a layers panel, a MapLibre GL 3D globe, or a CesiumJS world with custom terrain, this hub gathers every Vue.js + maps tutorial on Spatial Dev Guru. Each series is incremental — start at Part 1 and build up to a production-ready application with Vite, Pinia, and TypeScript.
🗺️ OpenLayers + Vue.js Series (6 Parts)
The flagship series. Begins with a blank Vue project and ends with vector tiles, dynamic styling, popups, and a clean Vite + Pinia + TypeScript codebase.
- Part 1 — Create the Map
- Part 2 — Build a Layers Panel
- Part 3 — Style & Legend for Vector Layers
- Part 4 — Feature Information Popup on Click
- Part 5 — Rebuild with Vite, Pinia & TypeScript
- Part 6 — Vector Tiles & Dynamic Styling
🌐 MapLibre GL + Vue.js Series
MapLibre GL is the open-source successor to Mapbox GL, with first-class WebGL rendering and a globe projection. This series uses Vue 3 with the Composition API and adds Three.js for 3D models.
🌍 CesiumJS + Vue.js Series
CesiumJS is the heavyweight choice for 3D geospatial applications — globes, terrain, point clouds, and 3D Tiles. These tutorials wire it cleanly into Vue.
🛰️ Street-Level Imagery in Vue
🚀 Deployment
🧠 Suggested Learning Path
- Pick the mapping library that matches your use case — 2D vector (OpenLayers), open-source GL (MapLibre), or full 3D earth (CesiumJS).
- Work through that library’s Part 1 tutorial to set up the Vue scaffolding.
- Continue through the series in order — each part builds on the last.
- Migrate the project to Vite + Pinia + TypeScript when you are ready for production.
- Deploy to GitHub Pages or your preferred host.
Need a backend to feed your map? See the PostGIS and Python GIS hubs for tile services, geocoding APIs, and dynamic vector tiles.
