/* eslint-disable */
// 添加文字标注
var TextAnnotation = {
points: [],
color: 'yellow',
L: null,
map: null,
layers: null,
polyline: null,
marker: null,
changeColor: '',
changeContent: '',
init: function (map, L) {
// console.log(L)
TextAnnotation.L = L
TextAnnotation.map = map
TextAnnotation.points = []
TextAnnotation.polyline = null
TextAnnotation.marker = null
TextAnnotation.layers = L.layerGroup()
map.on('click', TextAnnotation.click).on('dblclick', TextAnnotation.dblclick)
},
// 设置改变文字内容
setContent: function (changeContent) {
// console.log(changeContent)
TextAnnotation.changeContent = changeContent
},
// 设置改变文字颜色
setColor: function (changeColor) {
// console.log(changeColor)
TextAnnotation.changeColor = changeColor
},
click: function (e) {
// console.log(TextAnnotation.changeContent)
let labIcon = L.divIcon({
html: '
' + TextAnnotation.changeContent + '
',
iconSize: [100, 40],
iconAnchor: [0, 0],
className: ''
})
let marker = L.marker(e.latlng, { icon: labIcon })
marker.addTo(TextAnnotation.map)
},
dblclick: function (e) {
TextAnnotation.map.off('click', TextAnnotation.click).off('dblclick', TextAnnotation.dblclick)
},
destory: function () {
if (TextAnnotation.polyline) {
TextAnnotation.map.removeLayer(TextAnnotation.polyline)
}
if (TextAnnotation.marker) {
TextAnnotation.marker.remove()
}
if (TextAnnotation.layers) {
TextAnnotation.layers.clearLayers()
}
}
}
// 添加 点 的标注
let pointAnnotation = {
points: [],
color: 'yellow',
L: null,
map: null,
layers: null,
polyline: null,
marker: null,
init: function (map, L) {
pointAnnotation.L = L
pointAnnotation.map = map
pointAnnotation.points = []
pointAnnotation.polyline = null
pointAnnotation.marker = null
pointAnnotation.layers = L.layerGroup()
map.on('click', pointAnnotation.click).on('dblclick', pointAnnotation.dblclick)
},
click: function (e) {
let marker = L.marker(e.latlng)
marker.addTo(pointAnnotation.map)
// pointAnnotation.map.panBy(L.point(e.latlng))
},
dblclick: function (e) {
pointAnnotation.map.off('click', pointAnnotation.click).off('dblclick', pointAnnotation.dblclick)
},
destory: function () {
if (pointAnnotation.polyline) {
pointAnnotation.map.removeLayer(pointAnnotation.polyline)
}
if (pointAnnotation.marker) {
pointAnnotation.marker.remove()
}
if (pointAnnotation.layers) {
pointAnnotation.layers.clearLayers()
}
}
}
// 添加文字标注
const startMakeText = function (map, L) {
TextAnnotation.init(map, L)
}
// 文字标注的 内容社设置
const setContentText = function (text) {
TextAnnotation.setContent(text)
}
// 文字标注内容的 颜色 设置
const setContentColor = function (color) {
TextAnnotation.setColor(color)
}
// 点 标注
const StartPointAnnotation = function (map, L) {
pointAnnotation.init(map, L)
}
const clearText = function () {
startMakeText.destory()
}
export default {
clearText,
startMakeText,
setContentText,
setContentColor,
StartPointAnnotation
}