最终效果
主要代码
import Vue from 'vue'
// Vue.prototype.Common.mapObj 是L.map 生成的地图对象,本人为了方便使用将其放到vue的原型链中
export default {
rootPolyGroup: null, // 多边形根图层
points: [],
lines: null, // 画的过程中生成的多边形
temLines: null, // 鼠标移动中生成的多边形(实际是一条线段)
isDraw: false, // 是否画线
dataInit() {
this.rootPolyGroup = L.featureGroup().addTo(Vue.prototype.Common.mapObj)
this.lines = new L.polyline([], { color: 'red' })
this.temLines = new L.polyline([], { color: 'red' })
this.rootPolyGroup.addLayer(this.lines)
this.rootPolyGroup.addLayer(this.temLines)
Vue.prototype.Common.mapObj.on('click', (e) => {
if (!this.isDraw) {
return
}