Nuxt-Mapbox
与 Nuxt 优雅集成的 Mapbox
📖 查看新文档!
功能
- 🏗 使用 Vue 组件轻松将 Mapbox 添加到您的 Nuxt 应用程序
- 🌎 使用 useMapbox Composable 轻松访问
- 👷 使用 defineMapboxMarker & defineMapboxPopup 创建自定义组件
- 🎛️ 使用 defineMapboxControl 创建您自己的控件
- 📖 跨路由的持久地图实例
快速设置
- 将
nuxt-mapbox
&mapbox-gl
依赖项添加到您的项目
npx nuxi@latest module add nuxt-mapbox
npm install --save-dev mapbox-gl
- 将
nuxt-mapbox
添加到nuxt.config.ts
的modules
部分
export default defineNuxtConfig({
modules: [
'nuxt-mapbox'
]
})
- 将您的 Mapbox API 密钥添加到
nuxt.config.ts
的mapbox
部分
export default defineNuxtConfig({
modules: [
'nuxt-mapbox'
],
mapbox: {
accessToken: '{API_KEY}'
}
})
用法
查看 Mapbox GL JS 文档 作为参考。
地图实例通过组件创建。您可以通过组件属性提供所有选项
示例
<MapboxMap
map-id="{ID}"
style="position: absolute; top: 0; bottom: 0; left: 250px; width: 500px;"
:options="{
style: 'mapbox://styles/mapbox/light-v11', // style URL
center: [-68.137343, 45.137451], // starting position
zoom: 5 // starting zoom
}"
/>
您可以通过将相应的组件嵌套在 Map 中来添加图层、源和控件
示例
<MapboxMap
...
>
<MapboxSource
source-id="{ID}"
:source="{
type: 'geojson',
data: '/test.geojson'
}"
/>
<MapboxLayer
:layer="{
source: '{ID}',
id: 'geojson-layer',
type: 'fill'
}"
/>
<MapboxGeolocateControl position="top-left" />
</MapboxMap>
开发
# Install dependencies
npm install
# Generate type stubs
npm run dev:prepare
# Develop with the playground
npm run dev
# Build the playground
npm run dev:build
# Run ESLint
npm run lint
# Run Vitest
npm run test
npm run test:watch
# Release new version
npm run release