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