From 90671325090a58b0dfc91dac6a84b1c2a09eaac7 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 27 三月 2025 17:29:27 +0800 Subject: [PATCH] 修复绘制轨迹线时,上一组数据没有清除的问题 --- 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