From 67d49e1d4c6b0519803982f8028253afa9552d0f Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期五, 17 一月 2025 10:41:22 +0800
Subject: [PATCH] 设备显示/隐藏,聚焦到设备

---
 src/model/map/OLMap.ts                                                                       |    8 ++++++--
 src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue |    9 +++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue
index 45d3017..0167ede 100644
--- a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue
+++ b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue
@@ -80,7 +80,7 @@
 import { onMounted, ref, watch } from 'vue';
 import { useDrag } from '/@/hooks/useDrag';
 import type { GaoDeSourceType, OLMap } from '/@/model/map/OLMap';
-import { gaoDeSourceTypeMap } from '/@/model/map/OLMap';
+import { gaoDeSourceTypeMap, MARKER_OVERLAY_CLASS_NAME, OverlayType } from '/@/model/map/OLMap';
 import { sleep } from '/@/utils/util';
 const searchText = ref('');
 const activeTab = ref('components');
@@ -124,7 +124,12 @@
 const handleNodeClick = (data: any, node: any) => {
 	if (data.id === ROOT_OVERLAY_TYPE.Marker) {
 		const overlays = props.olMap.map.getOverlays().getArray();
-		props.olMap.adjustViewToOverlays(overlays);
+
+		const filteredOverlays = overlays.filter((overlay) => {
+			const type = overlay.get('type');
+			return type === OverlayType.Marker;
+		});
+		props.olMap.adjustViewToOverlays(filteredOverlays);
 	}
 };
 
diff --git a/src/model/map/OLMap.ts b/src/model/map/OLMap.ts
index 7434965..e6c4630 100644
--- a/src/model/map/OLMap.ts
+++ b/src/model/map/OLMap.ts
@@ -25,6 +25,9 @@
 	/** @description 褰卞儚璺綉 */
 	SatelliteRoad = 3,
 }
+export const enum OverlayType {
+	Marker = 'marker',
+}
 export const MARKER_OVERLAY_CLASS_NAME = 'marker-overlay';
 
 export const gaoDeSourceTypeMap = {
@@ -148,7 +151,6 @@
 		return eleOverlay;
 	}
 
-	
 	private createMarker(id: string, item: any, markerOpt: any): Overlay {
 		// 鍒涘缓鍥剧墖鍏冪礌
 		const markerImg = document.createElement('img');
@@ -171,6 +173,7 @@
 		});
 
 		overlay.set('extData', item.extData);
+		overlay.set('type', OverlayType.Marker);
 		// 娣诲姞鐐瑰嚮浜嬩欢
 		markerImg.addEventListener('click', (event) => {
 			if (markerOpt.icon.selectUrl) {
@@ -182,7 +185,8 @@
 		return overlay;
 	}
 
-	 adjustViewToOverlays(overlays: Overlay[]) {
+	adjustViewToOverlays(overlays: Overlay[]) {
+		if (overlays.length === 0) return;
 		const extent = overlays.reduce<number[] | null>((ext, item) => {
 			const coord = item.getPosition();
 

--
Gitblit v1.9.3