From ec15cd194baf2746043d79e529c5be151d99844b Mon Sep 17 00:00:00 2001 From: wzy-warehouse <18135009705@163.com> Date: Tue, 16 Jun 2026 10:03:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E9=97=AD=E8=87=AA=E5=8A=A8=E6=8E=A8?= =?UTF-8?q?=E6=BC=94=E6=97=B6=E5=80=99=E6=B8=85=E9=99=A4=E8=84=89=E5=86=B2?= =?UTF-8?q?=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/rain-earthquake/useRightHandle.ts | 3 +++ src/utils/cesium/CesiumUtils.ts | 30 ++++++++++----------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/hooks/rain-earthquake/useRightHandle.ts b/src/hooks/rain-earthquake/useRightHandle.ts index 6c58dcf..5b6b90a 100644 --- a/src/hooks/rain-earthquake/useRightHandle.ts +++ b/src/hooks/rain-earthquake/useRightHandle.ts @@ -34,6 +34,9 @@ export const useRightHandle = () => { // 隐藏步骤条 statusStore.uiComponents.stepBar.show = false; + + // 删除脉冲 + CesiumUtilsSingleton.removeAllPulses(); } }; diff --git a/src/utils/cesium/CesiumUtils.ts b/src/utils/cesium/CesiumUtils.ts index 8929599..851959b 100644 --- a/src/utils/cesium/CesiumUtils.ts +++ b/src/utils/cesium/CesiumUtils.ts @@ -552,7 +552,7 @@ export class CesiumUtils { this.clearAllPrimitives(clearType); this.clearAllLayers(clearType); this.clearAllGeoJsonLayers(clearType); - this.#removeAllPulses(); + this.removeAllPulses(); } // ===================== getter 和 setter函数 ===================== @@ -637,7 +637,7 @@ export class CesiumUtils { if (!viewer) return; // 移除已有脉冲 - this.#removeAllPulses(); + this.removeAllPulses(); // 生成圆形贴图 if (!this.#pulseCircleImage) { @@ -665,6 +665,15 @@ export class CesiumUtils { } } + /** + * 移除所有脉冲实体 + */ + removeAllPulses(): void { + for (const key of Object.keys(this.#pulseMap)) { + this.#deletePulseEntity(key); + } + } + // ===================== 私有方法 ===================== /** @@ -720,24 +729,24 @@ export class CesiumUtils { viewer.entities.add({ id: pulseId, position: Cartesian3.fromDegrees(lon, lat), - properties: { pulseKey: key }, + properties: {pulseKey: key}, billboard: { image: this.#pulseCircleImage, width: new CallbackProperty((time) => { const elapsed = - JulianDate.secondsDifference(time, startTime) % duration; + JulianDate.secondsDifference(time, startTime) % duration; const progress = elapsed / duration; return maxRadius * 2 * Math.abs(Math.sin(progress * Math.PI)); }, false), height: new CallbackProperty((time) => { const elapsed = - JulianDate.secondsDifference(time, startTime) % duration; + JulianDate.secondsDifference(time, startTime) % duration; const progress = elapsed / duration; return maxRadius * 2 * Math.abs(Math.sin(progress * Math.PI)); }, false), color: new CallbackProperty((time) => { const elapsed = - JulianDate.secondsDifference(time, startTime) % duration; + JulianDate.secondsDifference(time, startTime) % duration; const progress = elapsed / duration; const alpha = 0.7 * (1 - progress); return color.withAlpha(alpha); @@ -751,15 +760,6 @@ export class CesiumUtils { }); } - /** - * 移除所有脉冲实体 - */ - #removeAllPulses(): void { - for (const key of Object.keys(this.#pulseMap)) { - this.#deletePulseEntity(key); - } - } - /** * 删除单个脉冲实体 * @param key - 脉冲映射 key