@vue-map/google
Version:
150 lines (133 loc) • 6.07 kB
Markdown
# 点坐标
## 基础示例
<vuep template="#example"></vuep>
<script v-pre type="text/x-template" id="example">
<template>
<div class="map-page-container">
<vue-map vid="mapDemo" :zoom="zoom" :center="center" class="map-demo">
<vue-map-marker
v-for="(marker, index) in markers"
:position="marker.position"
:events="marker.events"
:visible="marker.visible"
:draggable="marker.draggable"
:vid="index"></vue-map-marker>
</vue-map>
<div class="toolbar">
<button type="button" name="button" v-on:click="toggleVisible">toggle first marker</button>
<button type="button" name="button" v-on:click="changePosition">change position</button>
<button type="button" name="button" v-on:click="changeDraggle">change draggle</button>
<button type="button" name="button" v-on:click="addMarker">add marker</button>
<button type="button" name="button" v-on:click="removeMarker">remove marker</button>
</div>
</div>
</template>
<style>
.map-demo {
height: 300px;
}
</style>
<script>
module.exports = {
name: 'map-page',
data() {
return {
count: 1,
zoom: 14,
center: [121.5273285, 31.21515044],
markers: [
{
position: [121.5273285, 31.21515044],
events: {
click: () => {
alert('click marker');
},
destroyed: () => {
console.log('marker destroyed')
}
},
visible: true,
draggable: false
}
]
};
},
methods: {
onClick() {
this.count += 1;
},
changePosition() {
let position = this.markers[0].position;
this.markers[0].position = [position[0] + 0.002, position[1] - 0.002];
},
changeDraggle() {
let draggable = this.markers[0].draggable;
this.markers[0].draggable = !draggable;
},
toggleVisible() {
let visableVar = this.markers[0].visible;
this.markers[0].visible = !visableVar;
},
addMarker() {
let marker = {
position: [121.5273285 + (Math.random() - 0.5) * 0.02, 31.21515044 + (Math.random() - 0.5) * 0.02],
visible: true,
draggable: true
};
this.markers.push(marker);
},
removeMarker() {
if (!this.markers.length) return;
this.markers.splice(this.markers.length - 1, 1);
}
}
};
</script>
</script>
## 静态属性
仅且可以初始化配置,不支持响应式。
名称 | 类型 | 说明
---|---|---|
vid | String | marker对象id。
## 动态属性
支持响应式。
名称 | 类型 | 说明
---|---|---|
visible | Boolean | 点标记是否可见,默认为true。
zIndex | Number | 点标记的叠加顺序。地图上存在多个点标记叠加时,通过该属性使级别较高的点标记在上层显示默认zIndex:100。
position | Array | 点标记在地图上显示的位置,默认为地图中心点。
offset | Array | 点标记显示位置偏移量,默认值为Pixel(-10,-34)。Marker指定position后,默认以marker左上角位置为基准点,对准所给定的position位置,若需使marker指定位置对准在position处,需根据marker的尺寸设置一定的偏移量。
icon | String | 需在点标记中显示的图标。可以是一个本地图标地址。
draggable | Boolean | 设置点标记是否可拖拽移动,默认为false。
cursor | String | 指定鼠标悬停时的鼠标样式
animation | String | 默认无动画效果,“google.maps.Animation.DROP”,点标掉落果,“google.maps.Animation.BOUNCE”,点标弹跳效果。
clickable | Boolean | 点标记是否可点击。
label | String | 添加文本标注
opacity | Number | 不透明度[0, 1]
## ref 可用方法
提供无副作用的同步帮助方法
函数 | 返回 | 说明
---|---|---|
$$getInstance() | [AMap.Marker](http://lbs.amap.com/api/javascript-api/reference/overlay#Marker) | 获取`marker`实例
$$getPosition() | [lng:Number,lat:Number] | 获取位置
## 事件
事件 | 参数 | 说明
---|---|---|
init | Object | 组件实例
click | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标左键单击事件
dblclick | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标左键双击事件
rightclick | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标右键单击事件
mouseover | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标移近点标记时触发事件
mouseout | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标移出点标记时触发事件
mousedown | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标在点标记上按下时触发事件
mouseup | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标在点标记上按下后抬起时触发事件
dragstart | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 开始拖拽点标记时触发事件
drag | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 鼠标拖拽移动点标记时触发事件
dragend | [MouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/map#MouseEvent) | 点标记拖拽移动结束触发事件
draggable_changed | | 点标记属性改变触发事件
animation_changed | | 同上
cursor_changed | | 同上
icon_changed | | 同上
position_changed | | 同上
visible_changed | | 同上
zindex_changed | | 同上