From ce17d42203a17120736d796d0e83b3742c4ec441 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期二, 21 十月 2025 21:54:52 +0800
Subject: [PATCH] 2025.10.21
---
src/utils/map/line.js | 56 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 45 insertions(+), 11 deletions(-)
diff --git a/src/utils/map/line.js b/src/utils/map/line.js
index d2211a5..a4395dd 100644
--- a/src/utils/map/line.js
+++ b/src/utils/map/line.js
@@ -2,13 +2,15 @@
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
return new AMap.Polyline({
path: path,
- strokeStyle: 'solid',
+ // strokeStyle: 'solid',
+ strokeStyle: 'dashed',
isOutline: true,
borderWeight: 1,
outlineColor: 'white',
@@ -19,15 +21,24 @@
});
}
+function drawDirection(path) {
+ const polyline = newPolyline(path, '#ffd82a');
+ map.add(polyline);
+ return polyline;
+}
+
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 +70,7 @@
// 鍒涘缓鎶樼嚎瀹炰緥
const polyline = newPolyline(_path, _color);
- _polylineArr.push(polyline);
+ defaultPolylineArr.push(polyline);
}
}
if (sIndex < path.length - 1) {
@@ -75,10 +86,33 @@
})
);
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);
+ });
+ }
+ },
+
+ drawDirection
};
--
Gitblit v1.9.3