Installation
This guide provides detailed instructions for installing and configuring MapboxGL.
Requirements
- Node.js 16.0 or higher
- Modern browsers (Chrome, Firefox, Safari, Edge)
Installation Methods
Method 1: Using Package Managers
npm
bash
npm install mapbox-glyarn
bash
yarn add mapbox-glpnpm
bash
pnpm add mapbox-glMethod 2: Using CDN
html
<!-- Mapbox GL JS -->
<script src="https://cdn.jsdelivr.net/npm/mapbox-gl@3.7.0/dist/mapbox-gl.min.js"></script>
<!-- Mapbox GL CSS -->
<link href="https://cdn.jsdelivr.net/npm/mapbox-gl@3.7.0/dist/mapbox-gl.min.css" rel="stylesheet">Using in Projects
Vite Project
javascript
// main.js or main.ts
import mapboxgl from 'mapbox-gl'
import 'mapbox-gl/dist/mapbox-gl.css'
// Set access token
mapboxgl.accessToken = import.meta.env.VITE_MAPBOX_TOKEN
export { mapboxgl }javascript
// .env
VITE_MAPBOX_TOKEN=your_access_token_hereVue 3 Project
vue
<template>
<div id="map" ref="mapContainer"></div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import mapboxgl from 'mapbox-gl'
import 'mapbox-gl/dist/mapbox-gl.css'
const mapContainer = ref(null)
onMounted(() => {
const map = new mapboxgl.Map({
container: mapContainer.value,
style: 'mapbox://styles/mapbox/streets-v12',
center: [116.3974, 39.9093],
zoom: 11
})
})
</script>
<style scoped>
#map {
width: 100%;
height: 100vh;
}
</style>React Project
jsx
import { useEffect, useRef } from 'react'
import mapboxgl from 'mapbox-gl'
import 'mapbox-gl/dist/mapbox-gl.css'
mapboxgl.accessToken = 'YOUR_ACCESS_TOKEN'
function Map() {
const mapContainer = useRef(null)
const map = useRef(null)
useEffect(() => {
if (map.current) return
map.current = new mapboxgl.Map({
container: mapContainer.current,
style: 'mapbox://styles/mapbox/streets-v12',
center: [116.3974, 39.9093],
zoom: 11
})
return () => {
map.current.remove()
}
}, [])
return <div ref={mapContainer} style={{ width: '100%', height: '100vh' }} />
}
export default MapDevelopment Tools
TypeScript Type Definitions
bash
npm install @types/mapbox-gl --save-devVue Development Tools
If you use Vue, it's recommended to install official MapboxGL Vue components:
bash
npm install @studiometa/vue-mapbox-gl
# or
npm install v-mapboxPerformance Tips
Performance Optimization
- Use latest version of MapboxGL
- Configure
preserveDrawingBufferoption appropriately - For large datasets, consider using data clustering
- Use WebGL 2.0 for better performance
Troubleshooting
Issue: Map not displaying
Solution:
- Check if access token is valid
- Ensure container element has explicit height and width
- Check browser console for error messages
Issue: Style loading failure
Solution:
- Ensure CSS file is properly imported
- Check if style URL is correct
- Verify network connection
Issue: TypeScript type errors
Solution:
bash
npm install @types/mapbox-gl --save-devOr add to tsconfig.json:
json
{
"compilerOptions": {
"types": ["mapbox-gl"]
}
}