/* 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(areaMeasure.polygon.dragging)
|
console.log('双击结束', e)
|
areaMeasure.polygon.enableEdit()
|
areaMeasure.polygon.dragging.disable()
|
areaMeasure.map.on('editable:vertex:drag editable:vertex:deleted', areaMeasure.polygon.updateMeasurements, areaMeasure.polygon)
|
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.polyline.enableEdit()
|
distanceMeasure.layers.addTo(distanceMeasure.map)
|
distanceMeasure.points.pop()
|
},
|
dblclick: function (e) { // 双击结束
|
console.log(distanceMeasure.polyline.dragging)
|
console.log('双击结束', e)
|
distanceMeasure.polyline.enableEdit()
|
distanceMeasure.polyline.dragging.disable()
|
distanceMeasure.polyline.addTo(distanceMeasure.layers)
|
distanceMeasure.map.on('editable:vertex:drag editable:vertex:deleted', distanceMeasure.polyline.updateMeasurements, distanceMeasure.polyline)
|
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 drawLine = {
|
// points: [],
|
// color: 'red',
|
// L: null,
|
// map: null,
|
// layers: null,
|
// polyline: null,
|
// marker: null,
|
// init (map, L) {
|
// drawLine.L = window.L
|
// drawLine.map = window.map
|
// drawLine.points = []
|
// drawLine.polyline = null
|
// drawLine.marker = null
|
// drawLine.layers = window.L.layers
|
// map.on('click', drawLine.click).on('dblclick', drawLine.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) {
|
// drawLine.map.doubleClickZoom.disable()
|
// // 添加点信息
|
// drawLine.points.push(e.latlng)
|
// // 添加线
|
// drawLine.map.on('mousemove', drawLine.mousemove)
|
// },
|
// mousemove (e) {
|
// drawLine.points.push(e.latlng)
|
// if (drawLine.polyline) {
|
// distanceMeasure.map.removeLayer(distanceMeasure.polyline)
|
// }
|
// drawLine.polyline = drawLine.L.polyline(drawLine.points, {
|
// showMeasurements: false,
|
// color: 'red'
|
// })
|
// drawLine.polyline.addTo(drawLine.layers)
|
// // distanceMeasure.polyline.enableEdit()
|
// drawLine.layers.addTo(drawLine.map)
|
// drawLine.points.pop()
|
// },
|
// dblclick (e) { // 双击结束
|
// console.log(drawLine.polyline.dragging)
|
// console.log('双击结束', e)
|
// drawLine.polyline.enableEdit()
|
// drawLine.polyline.dragging.disable()
|
// drawLine.polyline.addTo(drawLine.layers)
|
// drawLine.map.on('editable:vertex:drag editable:vertex:deleted', drawLine.polyline.updateMeasurements, drawLine.polyline)
|
// drawLine.close(e.latlng)
|
// drawLine.map.off('click', drawLine.click).off('mousemove', drawLine.mousemove).off('dblclick', drawLine.dblclick)
|
// },
|
// destory: function () {
|
// if (drawLine.polyline) {
|
// drawLine.map.removeLayer(drawLine.polyline)
|
// }
|
// if (drawLine.marker) {
|
// drawLine.marker.remove()
|
// }
|
// if (drawLine.layers) {
|
// drawLine.layers.clearLayers()
|
// }
|
// }
|
// }
|
|
const startMeasureArea = function (map, L) {
|
areaMeasure.destory()
|
areaMeasure.init(map, L)
|
}
|
|
const startMeasureLen = function (map, L) {
|
distanceMeasure.destory()
|
distanceMeasure.init(map, L)
|
}
|
|
// const drawLineData = (map, L) => {
|
// drawLine.destory()
|
// drawLine.init(map, L)
|
// }
|
|
const clearMeasure = function () {
|
areaMeasure.destory()
|
distanceMeasure.destory()
|
// drawLine.destory()
|
}
|
export default {
|
startMeasureArea,
|
startMeasureLen,
|
clearMeasure
|
// drawLineData
|
}
|