From c7a16ca1b6fbcb0b82a4a09c2e75014624082e37 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期四, 27 三月 2025 22:45:48 +0800
Subject: [PATCH] 修复走航融合功能bug
---
src/utils/map/line.js | 43 ++++++++++++++++++++++++++++++++++---------
1 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/src/utils/map/line.js b/src/utils/map/line.js
index d2211a5..6245983 100644
--- a/src/utils/map/line.js
+++ b/src/utils/map/line.js
@@ -2,7 +2,8 @@
import calculate from './calculate';
import { getHexColor } from '../color';
-var _polylineArr = [];
+var defaultPolylineArr = [];
+const lineMap = new Map();
function newPolyline(path, color) {
// eslint-disable-next-line no-undef
@@ -21,13 +22,16 @@
export default {
drawLine(fDatas, factor) {
+ if (defaultPolylineArr.length > 0) {
+ map.remove(defaultPolylineArr);
+ defaultPolylineArr = [];
+ }
+
const lnglats_GD = fDatas.lnglats_GD;
const colors = factor.colors;
- if (_polylineArr) {
- map.remove(_polylineArr);
- _polylineArr = [];
- }
+ // this.hideLine();
+
var path = calculate.parse2LngLat(lnglats_GD);
let sIndex = 0;
@@ -59,7 +63,7 @@
// 鍒涘缓鎶樼嚎瀹炰緥
const polyline = newPolyline(_path, _color);
- _polylineArr.push(polyline);
+ defaultPolylineArr.push(polyline);
}
}
if (sIndex < path.length - 1) {
@@ -75,10 +79,31 @@
})
);
const polyline = newPolyline(_path, _color);
- _polylineArr.push(polyline);
+ defaultPolylineArr.push(polyline);
}
// 灏嗘姌绾挎坊鍔犺嚦鍦板浘瀹炰緥
- map.add(_polylineArr);
- return _polylineArr;
+ map.add(defaultPolylineArr);
+ return defaultPolylineArr;
+ },
+
+ drawTagLine(tag, fDatas, factor) {
+ if (lineMap.has(tag)) {
+ const _polylineArr = lineMap.get(tag);
+ map.add(_polylineArr);
+ } else {
+ const _polylineArr = this.drawLine(fDatas, factor);
+ lineMap.set(tag, _polylineArr);
+ }
+ },
+
+ hideLine(tag) {
+ if (tag && lineMap.has(tag)) {
+ const _polylineArr = lineMap.get(tag);
+ map.remove(_polylineArr);
+ } else {
+ lineMap.forEach((v) => {
+ map.remove(v);
+ });
+ }
}
};
--
Gitblit v1.9.3