Skip to content

VMapbox 标准地图

如果使用 Mapbox 托管的样式,则需要设置 accessToken 访问令牌。

如何创建 accessToken 访问令牌?

Mapbox GL JS v3

Mapbox GL JS v3 支持 Mapbox 标准样式 和 Mapbox 标准卫星样式。

  • mapbox://styles/mapbox/standard
  • mapbox://styles/mapbox/standard-satellite

注意

  • 如果图层样式中有使用 text-field 属性,则必须设置 glyphs 属性。
  • Mapbox 的矢量瓦片、字体都是采用 pbf 数据结构进行存储、压缩的。
  • 使用 font-maker 工具可以将 ttf 字体转换为 pbf 字体。

基础用法

更改地图的样式配置属性

参考 Mapbox 样式配置属性

Api

官方配置文档 map

mapboxProps

属性名说明类型默认值
accessToken访问令牌string必填
type标准样式类型enum-
projection地图投影ProjectionSpecification/stringglobe
zoom缩放级别number6
minZoom最小缩放级别number0
maxZoom最大缩放级别number22
center中心坐标LngLatLike[120, 30]
sprite雪碧图文件string-
glyphs字体文件stringstring
defaultOptions配置选项object-
syncOptions同步插件的配置object-

mapboxEmits

事件名说明回调参数
load地图渲染完成后执行Function
mousedown鼠标按下时触发Function
mouseup鼠标抬起时触发Function
mouseover鼠标悬停时触发Function
mousemove鼠标移动时触发Function
preclick鼠标单击前触发Function
click鼠标单击时触发Function
dblclick鼠标双击时触发Function
mouseenter鼠标进入时触发Function
mouseleave鼠标离开时触发Function
mouseout鼠标移出时触发Function
contextmenu右键菜单时触发Function
wheel滚轮滚动时触发Function
touchstart触摸开始时触发Function
touchend触摸结束时触发Function
touchmove触摸移动时触发Function
touchcancel触摸取消时触发Function
movestart地图开始移动时触发Function
move地图移动时触发Function
moveend地图停止移动时触发Function
dragstart拖拽开始时触发Function
drag拖拽时触发Function
dragend拖拽结束时触发Function
zoomstart缩放开始时触发Function
zoom缩放时触发Function
zoomend缩放结束时触发Function
rotatestart旋转开始时触发Function
rotate旋转时触发Function
rotateend旋转结束时触发Function
pitchstart倾斜开始时触发Function
pitch倾斜时触发Function
pitchend倾斜结束时触发Function
boxzoomstart框选缩放开始时触发Function
boxzoomend框选缩放结束时触发Function
boxzoomcancel框选缩放取消时触发Function
resize地图大小改变时触发Function
renderstart渲染开始时触发Function
render渲染时触发Function
remove地图移除时触发Function
error错误时触发Function

Inject

hooks/symbol.ts
typescript
export const mapKey: InjectionKey<ShallowRef<Map | undefined>> = Symbol('Map')
hooks/useMap.ts
ts
export function useMap() {
  const map = inject(mapKey)
  if (!map) {
    throw new Error('No Map provided')
  }
  return unref(map)
}

类型定义

MapboxLoadEvent

basemap/Mapbox/Mapbox.ts
typescript
export interface MapboxLoadEvent {
  map: Map
}

要使用 Mapbox 的默认标准样式的雪碧图,请带上 accessToken 访问令牌。例如:https://api.mapbox.com/styles/v1/mapbox/light-v11/sprite?access_token=xxx

mapboxStyles 类型定义
constant/index.ts
typescript
export const mapboxStyles = {
  'standard': {
    url: 'mapbox://styles/mapbox/standard',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/standard/4ivg79if39renk8nikar5sjr3/sprite',
  },
  'standard-satellite': {
    url: 'mapbox://styles/mapbox/standard-satellite',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/standard-satellite/c431ijrfgwsyfexdag09oy9n8/sprite',
  },
  'streets-v12': {
    url: 'mapbox://styles/mapbox/streets-v12',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/streets-v12/sprite',
  },
  'outdoors-v12': {
    url: 'mapbox://styles/mapbox/outdoors-v12',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/outdoors-v12/sprite',
  },
  'light-v11': {
    url: 'mapbox://styles/mapbox/light-v11',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/light-v11/sprite',
  },
  'dark-v11': {
    url: 'mapbox://styles/mapbox/dark-v11',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/dark-v11/sprite',
  },
  'satellite-v9': {
    url: 'mapbox://styles/mapbox/satellite-v9',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/satellite-v9/sprite',
  },
  'satellite-streets-v12': {
    url: 'mapbox://styles/mapbox/satellite-streets-v12',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v12/sprite',
  },
  'navigation-day-v1': {
    url: 'mapbox://styles/mapbox/navigation-day-v1',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/navigation-day-v1/sprite',
  },
  'navigation-night-v1': {
    url: 'mapbox://styles/mapbox/navigation-night-v1',
    sprite: 'https://api.mapbox.com/styles/v1/mapbox/navigation-night-v1/sprite',
  },
} as const

基于 MIT 许可发布