Skip to content

VMarker

VMarker 控件用于在地图上添加标记。

基础用法

使用 VMarker 组件将自定义图标添加到地图中。

API

markerProps

属性名说明类型默认值
center标记的经纬度坐标object, array必填
element用作标记的 DOM 元素object-
offset偏移量,以像素为单位object, array-
anchor锚点位置stringcenter
color默认标记的颜色string#3FB1CE
scale默认标记的比例number1
draggable是否允许拖动标记booleanfalse
clickTolerance点击容差number0
rotation旋转角度number0
rotationAlignment旋转对齐方式stringauto
pitchAlignment倾斜对齐方式auto
occludedOpacity被 3D 地形遮挡的标记的不透明度number0
classNameCSS 类名string-
defaultOptions标记的配置项(覆盖同名属性object-

markerEmits

事件名说明回调参数
load标记加载完成后触发Function
update:center标记位置更新时触发Function
dragstart拖动标记开始时触发Function
drag拖动标记时触发Function
dragend拖动标记结束时触发Function

markerSlots

插槽名说明
default自定义标记的内容
popup自定义弹框的内容

Inject

hooks/symbol.ts
typescript
export const markerKey: InjectionKey<ShallowRef<Marker | undefined>> = Symbol('Marker')
hooks/useMarker.ts
ts
export function useMarker() {
  const marker = inject(markerKey)
  if (!marker) {
    consola.warn('No Marker provided')
  }
  return unref(marker)
}

类型定义

MarkerLoadEvent

plugin/Marker/Marker.ts
typescript
export interface MarkerLoadEvent {
  map: Map
  marker: Marker
}

MarkerAnchor

plugin/Marker/Marker.ts
typescript
export type MarkerAnchor =
  | 'center'
  | 'top'
  | 'bottom'
  | 'left'
  | 'right'
  | 'top-left'
  | 'top-right'
  | 'bottom-left'
  | 'bottom-right'

MarkerEvents

plugin/Marker/Marker.ts
typescript
export interface MarkerEvents {
  dragstart: void
  drag: void
  dragend: void
}

基于 MIT 许可发布