VMarker
VMarker
控件用于在地图上添加标记。
基础用法
使用 VMarker
组件将自定义图标添加到地图中。
API
markerProps
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
center | 标记的经纬度坐标 | object, array | 必填 |
element | 用作标记的 DOM 元素 | object | - |
offset | 偏移量,以像素为单位 | object, array | - |
anchor | 锚点位置 | string | center |
color | 默认标记的颜色 | string | #3FB1CE |
scale | 默认标记的比例 | number | 1 |
draggable | 是否允许拖动标记 | boolean | false |
clickTolerance | 点击容差 | number | 0 |
rotation | 旋转角度 | number | 0 |
rotationAlignment | 旋转对齐方式 | string | auto |
pitchAlignment | 倾斜对齐方式 | auto | |
occludedOpacity | 被 3D 地形遮挡的标记的不透明度 | number | 0 |
className | CSS 类名 | string | - |
defaultOptions | 标记的配置项(覆盖同名属性) | object | - |
markerEmits
事件名 | 说明 | 回调参数 |
---|---|---|
load | 标记加载完成后触发 | Function |
update:center | 标记位置更新时触发 | Function |
dragstart | 拖动标记开始时触发 | Function |
drag | 拖动标记时触发 | Function |
dragend | 拖动标记结束时触发 | Function |
markerSlots
插槽名 | 说明 |
---|---|
default | 自定义标记的内容 |
popup | 自定义弹框的内容 |
Inject
typescript
export const markerKey: InjectionKey<ShallowRef<Marker | undefined>> = Symbol('Marker')
ts
export function useMarker() {
const marker = inject(markerKey)
if (!marker) {
consola.warn('No Marker provided')
}
return unref(marker)
}
类型定义
MarkerLoadEvent
typescript
export interface MarkerLoadEvent {
map: Map
marker: Marker
}
MarkerAnchor
typescript
export type MarkerAnchor =
| 'center'
| 'top'
| 'bottom'
| 'left'
| 'right'
| 'top-left'
| 'top-right'
| 'bottom-left'
| 'bottom-right'
MarkerEvents
typescript
export interface MarkerEvents {
dragstart: void
drag: void
dragend: void
}