src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/model/map/OLMap.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); } }; 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();