/* 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: 'red',
|
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.polygon.enableEdit();
|
//map.on('editable:vertex:drag editable:vertex:deleted', distanceMeasure.polygon.updateMeasurements, distanceMeasure.polygon);
|
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
|
}
|