地图工具

示例

mousetool 组件初始化时会创建六个工具对象,分别对应标注工具、多边形工具、折线工具、矩形工具、画圆工具、画笔工具。使用默认配置时不需要传值,手动配置时传入相应工具的配置项参数即可。


查看代码
<template>
  <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="openTool('paintBrushTool')">画笔</button>
  <br />
  <button @click="clearTool('markTool')">清除标点</button>
  <button @click="clearTool('polygonTool')">清除面</button>
  <button @click="clearTool('polylineTool')">清除线</button>
  <button @click="clearTool('rectangleTool')">清除矩形</button>
  <button @click="clearTool('circleTool')">清除圆</button>
  <button @click="clearTool('paintBrushTool')">清除画笔</button>
  <button @click="clearTool()">清除全部</button>
  <div class="mapDiv">
    <tdt-map :center="state.center" :zoom="state.zoom">
      <tdt-mousetool ref="mousetoolRef" :markTool="{ follow: true }" @mark-mouseup="onMarkMouseup"></tdt-mousetool>
    </tdt-map>
  </div>
</template>

<script lang="ts" setup>
import { reactive, ref } from "vue-demi";

const state = reactive({
  center: [113.280637, 23.125178],
  zoom: 11
});

const mousetoolRef = ref();
function openTool(toolName: string) {
  mousetoolRef.value?.open(toolName);
}

function clearTool(toolName?: string) {
  toolName ? mousetoolRef.value?.clear(toolName) : mousetoolRef.value?.clearAll();
}

function onMarkMouseup(e: T.MarkToolEvent) {
  console.log(e);
}
</script>

<script lang="ts">
export default { name: "demo-mousetool" };
</script>

<style scoped>
.mapDiv {
  width: 100%;
  height: 300px;
}
</style>

属性

属性类型默认值说明
markToolObject标点的配置项,下方详细说明
polygonToolObject多边形的配置项,下方详细说明
polylineToolObject折线的配置项,下方详细说明
rectangleToolObject矩形的配置项,下方详细说明
circleToolObject圆形的配置项,下方详细说明
paintBrushToolObject画笔的配置项,下方详细说明

方法

通过 ref 调用

方法返回值说明
open(toolName:string)开启工具
close(toolName:string)关闭工具
clear(toolName:string)清除该工具绘制的所有图形。
clearAll()清除绘制的所有图形。

标注工具

markTool 标注工具,用来让用户在地图上标注一个点,可以通过该工具获得用户标点的经纬度位置。

属性

属性类型默认值说明
iconString/Object标注的图标。可以是网络地址或本地图片地址,也可以是对象{iconUrl:String //地址,
iconSize:Array //大小,
iconAnchor:Array //偏移}
followBooleanfalse标记图标是否跟随鼠标。

事件

事件参数描述
mark-mouseup({type,target,currentLnglat,
currentMarker,allMarkers})
在用户每完成一次标注时触发事件

多边形工具

polygonTool 多边形工具,可以通过事件来获取用户绘制的多边形,包含测面积功能。

属性

属性类型默认值说明
colorString"#0000FF"多边形边线颜色。
weightNumber3多边形边线的宽度,以像素为单位。
opacityNumber0.5多边形边线的透明度(范围 0-1 之间)。
fillColorString"#0000FF"多边形填充颜色。当参数为空时,折线覆盖物将没有填充效果。
fillOpacityNumber0.2多边形填充的透明度(范围 0-1 之间)。
lineStyleString"solid"多边形边线的样式(solid 或 dashed)。
showLabelBooleanfalse是否显示面积,如果不显示面积,则可以作为画面控件使用,默认值为 false。

事件

事件参数描述
polygon-draw({type,target,currentLnglats,currentArea,
currentPolygon,allPolygons})
用户双击完成一次折线绘制时触发事件。
polygon-addpoint({type,target,currentLnglats,currentArea,
currentPolygon,allPolygons})
用户在多边形绘制过程中,每次点击底图添加节点时触发事件。

折线工具

polylineTool 折线工具,可以通过事件来获取用户绘制的折线,包含测距功能。

属性

属性类型默认值说明
colorString"#0000FF"折线颜色。
weightNumber3折线的宽度,以像素为单位。
opacityNumber0.5折线的透明度(范围 0-1 之间)。
lineStyleString"solid"拆线的样式(solid 或 dashed)。
showLabelBooleanfalse是否显示距离,如果不显示距离,则可以作为画线控件使用,默认值为 false。

事件

事件参数说明
polyline-draw({type,target,currentLnglats,currentDistance,
currentPolyline,allPolylines})
用户每次完成拉框操作时触发事件。
polyline-addpoint({type,target,currentLnglats,currentDistance,
currentPolyline,allPolylines})
用户测距过程中,每次点击底图添加节点时触发事件。

矩形工具

rectangleTool 矩形工具,用来实现在地图上选择一个矩形区域或绘制矩形的功能。

属性

属性类型默认值说明
colorString"#0000FF"矩形边线颜色。
weightNumber3矩形边线的宽度,以像素为单位。
opacityNumber0.5矩形边线的透明度(范围 0-1 之间)。
fillColorString"#0000FF"矩形填充颜色。当参数为空时,折线覆盖物将没有填充效果。
fillOpacityNumber0.2矩形填充的透明度(范围 0-1 之间)。
lineStyleString"solid"矩形边线的样式(solid 或 dashed)。

事件

事件参数描述
rectangle-draw({type,target,currentBounds,
currentRectangle,allRectangles})
用户每次完成拉框操作时触发事件。

画圆工具

circleTool 画圆工具,用来实现在地图上画圆的功能。

属性

属性类型默认值说明
colorString"#0000FF"圆边线颜色。
weightNumber3圆边线的宽度,以像素为单位。
opacityNumber0.5圆边线的透明度(范围 0-1 之间)。
fillColorString"#0000FF"圆填充颜色。当参数为空时,折线覆盖物将没有填充效果。
fillOpacityNumber0.2圆填充的透明度(范围 0-1 之间)。
lineStyleString"solid"圆边线的样式(solid 或 dashed)。

事件

事件参数描述
circle-draw({type,target,currentCenter,currentRadius,
currentCircle,allCircles})
用户拖动绘制圆时触发。
circle-drawend({type,target,currentCenter,currentRadius,
currentCircle,allCircles})
用户完成绘制圆时触发。

画笔工具

paintBrushTool 在地图容器中,创建一个可以随意画线的画笔工具。

属性

属性类型默认值说明
keepdrawingBooleanfalse保持工具的连续可用性
colorString"#0000FF"画笔颜色。
weightNumber3画笔的宽度,以像素为单位。
opacityNumber0.5画笔的透明度(范围 0-1 之间)。