|
@@ -12,10 +12,15 @@ import { unByKey } from 'ol/Observable'
|
|
|
import './dom.scss'
|
|
|
import {createBox} from "ol/interaction/Draw";
|
|
|
import {Circle, LineString, Polygon} from "ol/geom";
|
|
|
+import {locationTooltipElement} from "@/components/easyMap/func/location";
|
|
|
+import {v4} from "uuid";
|
|
|
|
|
|
const layerFlag = ['layerName', 'measureLayer']
|
|
|
let measureTooltipElement;
|
|
|
let helpTooltipElement;
|
|
|
+let helpTooltipMap = new Map()
|
|
|
+let measureTooltipMap = new Map()
|
|
|
+let dom = []
|
|
|
const typeMapper = new Map([
|
|
|
['line', 'LineString'],
|
|
|
['rectangle', 'LineString'],
|
|
@@ -58,6 +63,7 @@ export default function Measure (map, typeSelect) {
|
|
|
map.addLayer(_vector);
|
|
|
}
|
|
|
let sketch;
|
|
|
+ const uuid = v4()
|
|
|
let helpTooltip;
|
|
|
let measureTooltip;
|
|
|
let continueMsg = '双击结束测量';
|
|
@@ -77,6 +83,7 @@ export default function Measure (map, typeSelect) {
|
|
|
positioning: 'bottom-center'
|
|
|
});
|
|
|
map.addOverlay(measureTooltip);
|
|
|
+ measureTooltipMap.set(uuid, measureTooltip)
|
|
|
}
|
|
|
const createHelpTooltip = () => {
|
|
|
const id = 'helpTooltipElementId'
|
|
@@ -93,6 +100,7 @@ export default function Measure (map, typeSelect) {
|
|
|
positioning: 'center-left'
|
|
|
});
|
|
|
map.addOverlay(helpTooltip);
|
|
|
+ helpTooltipMap.set(uuid, helpTooltip)
|
|
|
}
|
|
|
const formatLength = (line) => {
|
|
|
// 获取投影坐标系
|
|
@@ -210,6 +218,7 @@ export default function Measure (map, typeSelect) {
|
|
|
const del: any = document.createElement("div");
|
|
|
del.className = "lineDel";
|
|
|
measureTooltipElement.append(del);
|
|
|
+ dom.push(del.parentElement.parentElement)
|
|
|
del.onclick = () => {
|
|
|
_source.removeFeature(evt.feature)
|
|
|
const b = del.parentElement.parentElement
|
|
@@ -264,3 +273,22 @@ export default function Measure (map, typeSelect) {
|
|
|
// });
|
|
|
}
|
|
|
}
|
|
|
+export const clearMeasureDom = (map) => {
|
|
|
+ if (measureTooltipElement) {
|
|
|
+ measureTooltipElement.parentNode.removeChild(measureTooltipElement);
|
|
|
+ measureTooltipElement = null
|
|
|
+ }
|
|
|
+ if (helpTooltipElement) {
|
|
|
+ helpTooltipElement.parentNode.removeChild(helpTooltipElement);
|
|
|
+ helpTooltipElement = null
|
|
|
+ }
|
|
|
+ measureTooltipMap.forEach((v, k) => {
|
|
|
+ map.removeOverlay(v)
|
|
|
+ })
|
|
|
+ helpTooltipMap.forEach((v, k) => {
|
|
|
+ map.removeOverlay(v)
|
|
|
+ })
|
|
|
+ dom.forEach(v => {
|
|
|
+ v?.parentElement?.removeChild(v)
|
|
|
+ })
|
|
|
+}
|