@vue-map/google
Version:
125 lines (109 loc) • 5.34 kB
Markdown
# 多边形
## 基础示例
<vuep template="#example"></vuep>
<script v-pre type="text/x-template" id="example">
<template>
<div class="map-page-container">
<vue-map vid="map" :zoom="zoom" :map-manager="mapManager" :center="center"
ref="map"
class="map-demo">
<vue-map-polygon
v-for="(polygon, index) in polygons"
:vid="index"
:ref="`polygon_${index}`"
:path="polygon.path"
:draggable="polygon.draggable"
:editable="polygon.editable"
:stroke-color="polygon.strokeColor"
:stroke-weight="polygon.strokeWeight"
:stroke-opacity="polygon.strokeOpacity"
:fill-color="polygon.fillColor"
:fill-opacity="polygon.fillOpacity"
:events="polygon.events"></vue-map-polygon>
</vue-map>
</div>
</template>
<style>
.map-demo {
height: 300px;
}
</style>
<script>
let mapManager = new VueMap.MapManager();
module.exports = {
data () {
return {
zoom: 15,
center: [121.5273285, 31.21515044],
mapManager: mapManager,
polygons: [
{
editable: true,
draggable: true,
strokeColor: '#0091ea',
strokeWeight: 5,
strokeOpacity: 1,
fillColor: '#ffff00',
fillOpacity: 0.5,
path: [
[121.5273285, 31.21515044],
[121.5293285, 31.21515044],
[121.5293285, 31.21915044],
[121.5273285, 31.21515044]
],
events: {
click: () => {
alert('click polygon');
console.log(mapManager.getComponent(0));
console.log(this.$refs.map.$$getCenter())
console.log(this.$refs.polygon_0[0].$$getPath())
}
}
}
]
}
}
};
</script>
</script>
## 静态属性
仅且可以初始化配置,不支持响应式。
名称 | 类型 | 说明
---|---|---|
vid | String | 组件的ID。
## 动态属性
支持响应式。
名称 | 类型 | 说明
---|---|---|
path | Array| 多边形轮廓线的节点坐标数组,当为“环”多边形时(多边形区域在多边形内显示为“岛”),path为二维数组,数组元素为多边形轮廓的节点坐标数组“环”多边形时,要求数组第一个元素为外多边形,其余为“岛”多边形,外多边形需包含“岛”多边形,否则程序不作处理
visible | Boolean | 是否可见
clickable | Boolean | 是否可点击
draggable | Boolean | 是否可以拖拽
editable | Boolean | 多边形当前是否可编辑
zIndex | Number | 多边形覆盖物的叠加顺序。地图上存在多个多边形覆盖物叠加时,通过该属性使级别较高的多边形覆盖物在上层显示
strokeColor | String | 线条颜色,使用16进制颜色代码赋值。
strokeOpacity | float | 轮廓线透明度,取值范围[0,1],0表示完全透明,1表示不透明。
strokeWeight | Number | 轮廓线宽度
fillColor | String | 多边形填充颜色,使用16进制颜色代码赋值,如:#FFAA00
fillOpacity | Float | 多边形填充透明度,取值范围[0,1],0表示完全透明,1表示不透明。
## ref 可用方法
提供无副作用的同步帮助方法
函数 | 返回 | 说明
---|---|---|
$$getInstance() | [google.maps.Polygon](https://developers.google.cn/maps/documentation/javascript/reference/polygon#Polygon) | 获取`polygon`实例
$$getPath() | [[lng:Number,lat:Number]] | 获取 `polygon` 的边界坐标
## 事件
事件 | 参数 | 说明
---|---|---|
init | Object | 组件实例
click | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标左键单击事件
dblclick | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标左键双击事件
rightclick | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 右键单击
mousedown | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标按下
mouseup | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标抬起
mouseover | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标经过
mouseout | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标移出
mousemove | [PolyMouseEvent](https://developers.google.cn/maps/documentation/javascript/reference/polygon#PolyMouseEvent) | 鼠标移动
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) | 多边形拖拽移动结束触发事件