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