From 01b792fb98a3f7f468018fffa64f2c48cda3f91f Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 15 Apr 2025 20:50:27 +0800
Subject: [PATCH] feat:选择机巢清除原地图图层---处理完善

---
 src/hooks/useMapAggregation/useMapAggregation.js |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/hooks/useMapAggregation/useMapAggregation.js b/src/hooks/useMapAggregation/useMapAggregation.js
index d92d63c..41d33ee 100644
--- a/src/hooks/useMapAggregation/useMapAggregation.js
+++ b/src/hooks/useMapAggregation/useMapAggregation.js
@@ -248,6 +248,8 @@
       return
     }
 
+    handlerInit()
+
     if (newValue.eventTimeType) {
       saveParams = { area_code: newValue.selectedAreaCode, date_enum: store.state.home.eventTimeParams }
     }
@@ -519,6 +521,11 @@
 
   // 移除所有监听事件,变量置空
   const removeAll = () => {
+    clearMapEntity()
+    viewer = null
+  }
+
+  const clearMapEntity = () => {
     if (!viewer) return
     removeEntities()
     removeLabel()
@@ -526,16 +533,9 @@
     viewer.scene.postRender.removeEventListener(determineScaling)
     handler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
     handler?.destroy()
-    viewer = null
     active = null
     handler = null
     currentEntity = null
-  }
-
-  const clearMapEntity = () => {
-    if (!viewer) return
-    removeEntities()
-    removeLabel()
   }
 
   const init = () => {
@@ -544,10 +544,17 @@
     initMapData(selectedAreaCode.value || userAreaCode.value).then(() => {
       viewer.scene.postRender.addEventListener(determineScaling)
     })
+
+    handlerInit()
+  }
+
+  const handlerInit = () => {
+    if (handler) return
+
     handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
     handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK)
-
   }
+
   onBeforeUnmount(() => { })
   // onMounted(() => {
   //   nextTick(() => {

--
Gitblit v1.9.3