From ddf60f1de7a1632e5673806838aa1ef74fd3886b Mon Sep 17 00:00:00 2001
From: guonan <guonan201020@163.com>
Date: 星期二, 06 五月 2025 14:20:33 +0800
Subject: [PATCH] 修改选中区域flyTo以及标红;避险场所面片未清除;存储方案模拟区域

---
 src/utils/area.js |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/src/utils/area.js b/src/utils/area.js
index 891aa95..eb44444 100644
--- a/src/utils/area.js
+++ b/src/utils/area.js
@@ -140,17 +140,29 @@
 }
 
 export function clearAreaPolygon() {
-	if (Array.isArray(areaPrimitives)) {
-		areaPrimitives.forEach(item => {
-			viewer.scene.primitives.remove(item)
-		})
-		areaPrimitives = []
-	}
-	if (Array.isArray(areaDataSource)) {
-		areaDataSource.forEach(dataSource => {
-			dataSource.show = false
-		})
-	}
+    // 1. 娓呴櫎閫氳繃 viewer.entities 娣诲姞鐨勫疄浣�
+    if (Array.isArray(areaDataSource)) {
+        areaDataSource.forEach(dataSource => {
+            // 绉婚櫎鏁版嵁婧愪腑鐨勬墍鏈夊疄浣�
+            dataSource.entities.values.forEach(entity => {
+                viewer.entities.remove(entity);
+            });
+            // 绉婚櫎鏁版嵁婧愭湰韬�
+            viewer.dataSources.remove(dataSource);
+        });
+        areaDataSource = [];
+    }
+
+    // 2. 娓呴櫎閫氳繃 viewer.scene.primitives 娣诲姞鐨勫浘鍏�
+    if (Array.isArray(areaPrimitives)) {
+        areaPrimitives.forEach(primitive => {
+            viewer.scene.primitives.remove(primitive);
+        });
+        areaPrimitives = [];
+    }
+
+    // 3. 寮哄埗鍦烘櫙閲嶇粯
+    viewer.scene.requestRender();
 }
 
 export function initAreaLine() {

--
Gitblit v1.9.3