mapbox-vue3 v0.6.0
Mapbox-Vue3
一个基于Vue3+Typescript封装的Mapbox地图组件
use
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import 'mapbox-vue3/dist/style.css'
import mapbox from 'mapbox-vue3'
const app = createApp(App)
app.use(mapbox, {
accessToken: 'pk.xxxxxxxxxxxxx'
})
app.mount('#app')
BaseMap
<template>
<Mapbox :options="options"></Mapbox>
</template>
<script lang="ts" setup>
import type { MapboxOptions } from 'mapbox-gl';
const options: Partial<MapboxOptions> = {
style: 'mapbox://styles/mapbox/streets-v11',
center: [0,0],
zoom: 4
};
</script>
SourceAndLayer
<template>
<Mapbox :options="options">
<MapboxVectorTileSource url="mapbox://examples.8fgz4egr">
<MapboxCircleLayer
source-layer="sf2010"
:style="{
'circle-radius': {
base: 1.75,
stops: [ [12, 2], [22, 180] ]
},
'circle-color': ['match', ['get', 'ethnicity'], 'White', '#fbb03b', 'Black', '#223b53', 'Hispanic', '#e55e5e', 'Asian', '#3bb2d0', '#ccc'],
}"
></MapboxCircleLayer>
</MapboxVectorTileSource>
</Mapbox>
</template>
<script lang="ts" setup>
import type { MapboxOptions } from 'mapbox-gl';
const options: Omit<MapboxOptions, 'container'> = {
style: 'mapbox://styles/mapbox/light-v11',
zoom: 12,
center: [-122.4473, 37.7535]
};
</script>
Hooks
<template>
<Mapbox :options="options" @register="register">
<MapboxTerrain url="mapbox://mapbox.mapbox-terrain-dem-v1" :exaggeration="1.5"></MapboxTerrain>
</Mapbox>
</template>
<script lang="ts" setup>
import type { MapboxOptions } from 'mapbox-gl';
import { useMapbox, useChainCamera } from 'mapbox-vue3';
const options: Partial<MapboxOptions> = {
style: 'mapbox://styles/mapbox/satellite-v9',
center: [107.132759, 34.784138],
zoom: 4,
};
const { getMapInstance, register } = useMapbox();
useChainCamera({
map: getMapInstance,
autoplay: true,
list: [
{
lngLat: [138.73375, 35.41914],
lookAtLngLat: [138.73036, 35.36197],
altitude: 7000,
duration: 0,
},
{
lngLat: [138.72649, 35.33974],
lookAtLngLat: [138.73036, 35.36197],
altitude: 6000.0,
duration: 20000,
},
{
lngLat: [138.72623, 35.31977],
lookAtLngLat: [138.73036, 35.36197],
altitude: 6000,
duration: 15000,
},
{
lngLat: [138.73375, 35.41914],
lookAtLngLat: [138.73036, 35.36197],
altitude: 7000,
duration: 15000,
}
],
});
</script>
Components
Fog.vue
Image.vue
Light.vue
Marker.vue
Popup.vue
Terrain.vue
AttributionControl.vue
CustomControl.vue
FullscreenControl.vue
GeolocateControl.vue
NavigationControl.vue
ScaleControl.vue
BackgroundLayer.vue
CircleLayer.vue
CustomLayer.vue
FillExtrusionLayer.vue
FillLayer.vue
HeatmapLayer.vue
HillshadeLayer.vue
LineLayer.vue
RasterLayer.vue
SkyLayer.vue
SymbolLayer.vue
Mapbox.vue
CanvasSource.vue
GeoJsonSource.vue
ImageSource.vue
RasterDemSource.vue
RasterSource.vue
VectorTileSource.vue
VideoSource.vue
Hooks
useChainCamera.ts
useEaseTo.ts
useFitBounds.ts
useFitScreenCoordinates.ts
useFlyTo.ts
useJumpTo.ts
useAttributionControl.ts
useCustomControl.ts
useFullscreenControl.ts
useGeolocateControl.ts
useNavigationControl.ts
useScaleControl.ts
useLayerEventListener.ts
useMapEventListener.ts
useMapReloadEvent.ts
useCreateBackgroundLayer.ts
useCreateCircleLayer.ts
useCreateCustomLayer.ts
useCreateFillExtrusionLayer.ts
useCreateFillLayer.ts
useCreateHeatmapLayer.ts
useCreateHillshadeLayer.ts
useCreateLayer.ts
useCreateLineLayer.ts
useCreateRasterLayer.ts
useCreateSkyLayer.ts
useCreateSymbolLayer.ts
useCreateFog.ts
useCreateImage.ts
useCreateLight.ts
useCreateMapbox.ts
useCreateMarker.ts
useCreatePopup.ts
useCreateTerrain.ts
useCreateCanvasSource.ts
useCreateGeoJsonSource.ts
useCreateImageSource.ts
useCreateRasterDemSource.ts
useCreateRasterSource.ts
useCreateVectorTileSource.ts
useCreateVideoSource.ts
useGeoJsonSource.ts
useLayer.ts
useMapbox.ts
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago