/* eslint-disable */ // 面积测量方法 var areaMeasure = { points: [], // markers:[], color: 'red', L: null, layers: null, polygon: null, marker: null, init: function (map, L) { areaMeasure.L = L areaMeasure.map = map areaMeasure.points = [] areaMeasure.polygon = null areaMeasure.marker = null areaMeasure.layers = L.layerGroup() areaMeasure.map.on('click', areaMeasure.click).on('dblclick', areaMeasure.dblclick) }, close: function (latlng) { /*areaMeasure.marker = L.marker(latlng, { icon: deleteIcon }).addTo(map).on("click", function (e) { //console.log('marker',e); if(areaMeasure.polygon) map.removeLayer(areaMeasure.polygon); if(areaMeasure.marker) areaMeasure.marker.remove(); }); //areaMeasure.markers.push(marker); */ }, click: function (e) { areaMeasure.map.doubleClickZoom.disable() // 添加点信息 areaMeasure.points.push(e.latlng) // 添加面 areaMeasure.map.on('mousemove', areaMeasure.mousemove) }, mousemove: function (e) { areaMeasure.points.push(e.latlng) if (areaMeasure.polygon) { areaMeasure.map.removeLayer(areaMeasure.polygon) } areaMeasure.polygon = areaMeasure.L.polygon(areaMeasure.points, { showMeasurements: true, color: 'red' }) //areaMeasure.polygon.addTo(map); areaMeasure.polygon.addTo(areaMeasure.layers) areaMeasure.layers.addTo(areaMeasure.map) areaMeasure.points.pop() }, dblclick: function (e) { // 双击结束 console.log('双击结束', e) areaMeasure.polygon.addTo(areaMeasure.layers) areaMeasure.close(e.latlng) //areaMeasure.polygon.enableEdit(); //map.on('editable:vertex:drag editable:vertex:deleted', areaMeasure.polygon.updateMeasurements, areaMeasure.polygon); areaMeasure.map.off('click', areaMeasure.click).off('mousemove', areaMeasure.mousemove).off('dblclick', areaMeasure.dblclick) }, destory: function () { if (areaMeasure.polygon) { areaMeasure.map.removeLayer(areaMeasure.polygon) } if (areaMeasure.marker) { areaMeasure.marker.remove() } if (areaMeasure.layers) { areaMeasure.layers.clearLayers() } } } // 距离测量方法 var distanceMeasure = { points: [], // markers:[], color: 'blue', L: null, map: null, layers: null, polyline: null, marker: null, init: function (map, L) { // console.log(L) distanceMeasure.L = L distanceMeasure.map = map distanceMeasure.points = [] distanceMeasure.polyline = null distanceMeasure.marker = null distanceMeasure.layers = L.layerGroup() map.on('click', distanceMeasure.click).on('dblclick', distanceMeasure.dblclick) }, close: function (latlng) { /*distanceMeasure.marker = L.marker(latlng, { icon: deleteIcon }).addTo(map).on("click", function (e) { //console.log('marker',e); if(distanceMeasure.polyline) map.removeLayer(distanceMeasure.polyline); if(distanceMeasure.marker) distanceMeasure.marker.remove(); });*/ }, click: function (e) { distanceMeasure.map.doubleClickZoom.disable() // 添加点信息 distanceMeasure.points.push(e.latlng) // 添加线 distanceMeasure.map.on('mousemove', distanceMeasure.mousemove) }, mousemove: function (e) { distanceMeasure.points.push(e.latlng) if (distanceMeasure.polyline) { distanceMeasure.map.removeLayer(distanceMeasure.polyline) } distanceMeasure.polyline = distanceMeasure.L.polyline(distanceMeasure.points, { showMeasurements: true, color: 'red' }) distanceMeasure.polyline.addTo(distanceMeasure.layers) distanceMeasure.layers.addTo(distanceMeasure.map) distanceMeasure.points.pop() }, dblclick: function (e) { // 双击结束 console.log('双击结束', e) distanceMeasure.polyline.addTo(distanceMeasure.layers) distanceMeasure.close(e.latlng) distanceMeasure.map.off('click', distanceMeasure.click).off('mousemove', distanceMeasure.mousemove).off('dblclick', distanceMeasure.dblclick) }, destory: function () { if (distanceMeasure.polyline) { distanceMeasure.map.removeLayer(distanceMeasure.polyline) } if (distanceMeasure.marker) { distanceMeasure.marker.remove() } if (distanceMeasure.layers) { distanceMeasure.layers.clearLayers() } } } const startMeasureArea = function (map, L) { areaMeasure.init(map, L) } const startMeasureLen = function (map, L) { distanceMeasure.init(map, L) } const clearMeasure = function () { areaMeasure.destory() distanceMeasure.destory() } export default { startMeasureArea, startMeasureLen, clearMeasure }