From d94a55f3358ed7ded4d5a5579968744ed047b6a4 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 11 Nov 2025 10:20:12 +0800
Subject: [PATCH] feat:测试

---
 src/views/layerManagement/index.vue |   39 +++++++++++++++++++++++++++++++++++----
 1 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/src/views/layerManagement/index.vue b/src/views/layerManagement/index.vue
index a33a2c3..9aa5477 100644
--- a/src/views/layerManagement/index.vue
+++ b/src/views/layerManagement/index.vue
@@ -65,7 +65,7 @@
 const areaCode = userInfo.value?.detail?.areaCode || '';
 // 红色警告交叉面提示窗
 const isShowWaringTip = ref(false);
-const activeName = ref('电子围栏');
+const activeName = ref('自定义识别区');
 const activeType = ref('0');
 let tbJwdList = [];
 const selectDataList = ref([]);
@@ -73,7 +73,7 @@
 let curPolygonPosition = [];
 const tabData = ref([
   {
-    name: '电子围栏',
+    name: '自定义识别区',
     type: '0',
   },
   {
@@ -121,7 +121,7 @@
 };
 const getdataFolderApi = () => {
   let id;
-  if (activeName.value === '电子围栏') {
+  if (activeName.value === '自定义识别区') {
     id = 1;
   } else if (activeName.value === '自定义禁飞区') {
     id = 2;
@@ -282,7 +282,7 @@
       layerParams.value.editNest = true; // 显示右侧编辑组件
       layerParams.value.decideWhetherToAddOrEdit = 2; // 标记为编辑模式
       // 根据围栏类型设置fenceType
-      if (activeName.value === '电子围栏') {
+      if (activeName.value === '自定义识别区') {
         layerParams.value.fenceType = 1;
       } else if (activeName.value === '自定义禁飞区') {
         layerParams.value.fenceType = 2;
@@ -308,6 +308,7 @@
   });
   viewer = publicCesiumInstance.getViewer();
   viewInstance.value = publicCesiumInstance;
+  viewInstance.value?.flyToContour();
   const nanChangPosition = Cesium.Cartesian3.fromDegrees(
     115.892151, // 经度
     28.676493, // 纬度
@@ -394,13 +395,43 @@
   }
 };
 provide('layerParams', layerParams);
+// onMounted(() => {
+//   initMap();
+//   cesiumContextMenu();
+//   getdataFolderApi();
+//   EventBus.on('deleteMapEntityById', deleteMapEntityById);
+//   EventBus.on('deleteMapEntitiesByFolderId', deleteMapEntitiesByFolderId);
+// });
 onMounted(() => {
   initMap();
   cesiumContextMenu();
   getdataFolderApi();
+  
+  // 新增:监听定位事件
+  EventBus.on('focusOnNode', (nodeData) => {
+    focusOnNode(nodeData);
+  });
+
   EventBus.on('deleteMapEntityById', deleteMapEntityById);
   EventBus.on('deleteMapEntitiesByFolderId', deleteMapEntitiesByFolderId);
 });
+
+// 新增:定位到指定节点
+const focusOnNode = (nodeData) => {
+  if (!viewer || !nodeData?.geo_data) return;
+  
+  // 解析节点坐标
+  const positions = parseGeoDataToPositions(nodeData.geo_data, nodeData.altitude);
+  if (positions.length < 3) return;
+
+  // 飞向该节点(保持其他已选中的围栏显示)
+  flyVisual({
+    positionsData: positions.map(pos => [pos.lng, pos.lat, pos.height || 0]),
+    viewer,
+    multiple: 13, // 缩放倍数
+    pitch: -90
+  });
+};
 onBeforeUnmount(() => {
   destroyMap();
   cesiumContextMenu(false);

--
Gitblit v1.9.3