# 地图工具
# 示例
mousetool 组件初始化时会创建五个工具对象,分别对应标注工具、多边形工具、折线工具、矩形工具、画圆工具。 使用默认配置时不需要传值,手动配置时传入相应工具的配置项参数即可。
<template>
<div class="mapDiv">
<tdt-map :center="center" :zoom="zoom">
<tdt-mousetool
ref="mousetool"
:markTool="{follow:true}"
:polygonTool="{showLabel:true}"
@polyline-draw="polylineDraw"
></tdt-mousetool>
</tdt-map>
<button @click="openTool('markTool')">标点</button>
<button @click="openTool('polygonTool')">测面</button>
<button @click="openTool('polylineTool')">标线</button>
<button @click="openTool('rectangleTool')">画矩形</button>
<button @click="openTool('circleTool')">画圆</button>
<button @click="clearAll()">清空</button>
</div>
</template>
<script>
export default {
name: "ex-control",
data() {
return {
center: [113.280637, 23.125178],
zoom: 11
};
},
methods: {
openTool(tool) {
this.$refs.mousetool.open(tool);
},
clearAll() {
this.$refs.mousetool.clearAll();
},
polylineDraw({ currentDistance }) {
alert(currentDistance);
}
}
};
</script>
<style scoped>
.mapDiv {
width: 100%;
height: 300px;
}
</style># 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| mark | Object | 标点的配置项,下方详细说明 | |
| polygon | Object | 多边形的配置项,下方详细说明 | |
| polyline | Object | 折线的配置项,下方详细说明 | |
| rectangle | Object | 矩形的配置项,下方详细说明 | |
| circle | Object | 圆形的配置项,下方详细说明 |
# 方法
通过 ref 调用
| 方法 | 返回值 | 说明 |
|---|---|---|
| open(toolName:String) | 开启工具 | |
| close(toolName:String) | 关闭工具 | |
| clear(toolName:String) | 清除该工具绘制的所有图形。 | |
| clearAll() | 清除绘制的所有图形。 |
# 标注工具
markTool 标注工具,用来让用户在地图上标注一个点,可以通过该工具获得用户标点的经纬度位置。
# 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| icon | String/Object | 标注的图标。可以是网络地址或本地图片地址,也可以是对象{iconUrl:String //地址,iconSize:Array //大小,iconAnchor:Array //偏移} | |
| follow | Boolean | false | 标记图标是否跟随鼠标。 |
# 事件
| 事件 | 参数 | 描述 |
|---|---|---|
| markend | { type, target, currentLnglat, currentMarker, allMarkers } | 在用户每完成一次标注时触发事件 |
# 多边形工具
polygonTool 多边形工具,可以通过事件来获取用户绘制的多边形,包含测面积功能。
# 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| color | String | "#0000FF" | 多边形边线颜色。 |
| weight | Number | 3 | 多边形边线的宽度,以像素为单位。 |
| opacity | Number | 0.5 | 多边形边线的透明度(范围 0-1 之间)。 |
| fillColor | String | "#0000FF" | 多边形填充颜色。当参数为空时,折线覆盖物将没有填充效果。 |
| fillOpacity | Number | 0.2 | 多边形填充的透明度(范围 0-1 之间)。 |
| lineStyle | String | "solid" | 多边形边线的样式(solid 或 dashed)。 |
| showLabel | Boolean | false | 是否显示面积,如果不显示面积,则可以作为画面控件使用,默认值为 false。 |
# 事件
| 事件 | 参数 | 描述 |
|---|---|---|
| polygon-draw | {type,target,currentLnglats,currentArea, currentPolygon,allPolygons } | 用户双击完成一次折线绘制时触发事件。 |
| polygon-addpoint | {type,target,currentLnglats,currentArea, currentPolygon,allPolygons } | 用户在多边形绘制过程中,每次点击底图添加节点时触发事件。 |
# 折线工具
polylineTool 折线工具,可以通过事件来获取用户绘制的折线,包含测距功能。
# 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| color | String | "#0000FF" | 折线颜色。 |
| weight | Number | 3 | 折线的宽度,以像素为单位。 |
| opacity | Number | 0.5 | 折线的透明度(范围 0-1 之间)。 |
| lineStyle | String | "solid" | 拆线的样式(solid 或 dashed)。 |
| showLabel | Boolean | false | 是否显示距离,如果不显示距离,则可以作为画线控件使用,默认值为 false。 |
# 事件
| 事件 | 参数 | 说明 |
|---|---|---|
| polyline-draw | {type,target,currentLnglats,currentDistance, currentPolyline,allPolylines } | 用户每次完成拉框操作时触发事件。 |
| polyline-addpoint | {type,target,currentLnglats,currentDistance, currentPolyline,allPolylines } | 用户测距过程中,每次点击底图添加节点时触发事件。 |
# 矩形工具
rectangleTool 矩形工具,用来实现在地图上选择一个矩形区域或绘制矩形的功能。
# 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| color | String | "#0000FF" | 矩形边线颜色。 |
| weight | Number | 3 | 矩形边线的宽度,以像素为单位。 |
| opacity | Number | 0.5 | 矩形边线的透明度(范围 0-1 之间)。 |
| fillColor | String | "#0000FF" | 矩形填充颜色。当参数为空时,折线覆盖物将没有填充效果。 |
| fillOpacity | Number | 0.2 | 矩形填充的透明度(范围 0-1 之间)。 |
| lineStyle | String | "solid" | 矩形边线的样式(solid 或 dashed)。 |
# 事件
| 事件 | 参数 | 描述 |
|---|---|---|
| rectangle-draw | {type,target,currentBounds, currentRectangle,allRectangles } | 用户每次完成拉框操作时触发事件。 |
# 画圆工具
circleTool 画圆工具,用来实现在地图上画圆的功能。
# 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| color | String | "#0000FF" | 圆边线颜色。 |
| weight | Number | 3 | 圆边线的宽度,以像素为单位。 |
| opacity | Number | 0.5 | 圆边线的透明度(范围 0-1 之间)。 |
| fillColor | String | "#0000FF" | 圆填充颜色。当参数为空时,折线覆盖物将没有填充效果。 |
| fillOpacity | Number | 0.2 | 圆填充的透明度(范围 0-1 之间)。 |
| lineStyle | String | "solid" | 圆边线的样式(solid 或 dashed)。 |
# 事件
| 事件 | 参数 | 描述 |
|---|---|---|
| circle-draw | {type,target,currentCenter,currentRadius, currentCircle,allCircles } | 用户拖动绘制圆时触发。 |
| circle-drawend | {type,target,currentCenter,currentRadius, currentCircle,allCircles } | 用户完成绘制圆时触发。 |