派生自 wuyushui/SewerAndRainNetwork

陈泽平
2021-05-31 ff68d386c8f03f67045b4e6b176fc86dc2f7a597
src/components/plugin/MakeTation.js
@@ -1,126 +1,125 @@
/* 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: '<div style="color:' + TextAnnotation.changeColor + ';font-size: 18px;">' + TextAnnotation.changeContent + '</div>',
      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
}
/* eslint-disable */
// 添加文字标注
var TextAnnotation = {
  points: [],
  color: '',
  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: '<div style="color:' + TextAnnotation.changeColor + ';font-size: 18px;">' + TextAnnotation.changeContent + '</div>',
      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: '',
  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)
  },
  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
}