Vue

高德插件之mouseTool和polyEditor实现电子围栏和

2023-07-27  本文已影响0人  红树_

引言

这一阵子基本完成了前端vue2的学习后,在项目中使用到了mouseToolpolyEditor这两个插件(plugin)来实现电子围栏禁飞区相关功能展示,在高德JS API 1.4中介绍的比较笼统,真正用到时碰到的一些坑和使用要点以及他们之间的联动记录一下。

mouseTool 鼠标工具

let self = this  
AMap.plugin(['AMap.MouseTool'], function () {
        self.mouseTool = new AMap.MouseTool(map) 
        self.mouseTool.on('draw', function (e) {
          self.polygon = e.obj
        })
      })
//开启绘图polygon多边形 也可指定Polyline、Marker等
this.mouseTool.polygon({
        strokeColor: '#3366FF',
        strokeOpacity: 1,
        strokeWeight: 3,
        fillOpacity: 0,
        fillColor: '#223300',
        zIndex: 50,
        bubble: true,
      })
//关闭绘图 参数布尔值:表示是否同时清除绘图
this.mouseTool.close(isClearDraw)

polyEditor 线/多边形编辑工具

let self = this
AMap.plugin(['AMap.PolyEditor'], function () {
        self.polyEditor = new AMap.PolyEditor(self.map, self.polygon)
        self.polyEditor.open() 
        self.polyEditor.on('end',function(e){console.log(e.target)})
      })
//关闭编辑 (没有参数可选)
self.polyEditor.close()

两个插件的联动

从上面的使用方法可以看出,正是应用了联动功能,但是一开始不能直接初始化使用polyEditor,因为此时mouseTool绘图没有完成,this.polygon对象为空还没有赋值,在绘图完成后才能获取到绘图完成的对象并赋值,此时才可以传入该参数初始化并使用polyEditor,使用这两个插件不需要额外自行使用new AMap.xxx来创建AMap对象,比较方便对象管理和维护。

2023.07.28

上一篇 下一篇

猜你喜欢

热点阅读