From 9a552e21711626af15ff36b298bcbe4422021f02 Mon Sep 17 00:00:00 2001 From: gerson <1405270578@qq.com> Date: 星期五, 24 一月 2025 10:20:19 +0800 Subject: [PATCH] 完成loading 显示 --- src/model/map/OLMap.ts | 31 +++++++++++++++++++++++-------- 1 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/model/map/OLMap.ts b/src/model/map/OLMap.ts index 55c97df..658770d 100644 --- a/src/model/map/OLMap.ts +++ b/src/model/map/OLMap.ts @@ -1,7 +1,6 @@ import { defaultsDeep } from 'lodash-es'; import type { Overlay } from 'ol'; import { Map as OpenLayerMap, View } from 'ol'; -import { ZoomSlider } from 'ol/control'; import type { Extent } from 'ol/extent'; import { getTopLeft, getWidth } from 'ol/extent'; import Tile from 'ol/layer/Tile'; @@ -31,10 +30,11 @@ export const MARKER_OVERLAY_CLASS_NAME = 'marker-overlay'; export const gaoDeSourceTypeMap = { - [GaoDeSourceType.Default]: '榛樿鍦板浘', - [GaoDeSourceType.Satellite]: '褰卞儚鍦板浘', - [GaoDeSourceType.Vector]: '鐭㈤噺鍦板浘', - [GaoDeSourceType.SatelliteRoad]: '褰卞儚璺綉', + // [GaoDeSourceType.Default]: '榛樿鍦板浘', + [GaoDeSourceType.Vector]: '鏍囧噯鍦板浘', + + [GaoDeSourceType.Satellite]: '鍗槦鍦板浘', + [GaoDeSourceType.SatelliteRoad]: '璺綉鍦板浘', }; export const getGaoDeSourceUrl = (type: GaoDeSourceType, lang: LangType = 'zh_cn') => { @@ -120,14 +120,19 @@ }); this.activeSourceType.value = sourceType; this.markerIsVisible.value = markerIsVisible; - this.setSourceUrl(this.activeSourceType.value); + this.applySourceType(this.activeSourceType.value); this.listenMapClick(); this.addBasicControl(); } - setSourceUrl(type: GaoDeSourceType = GaoDeSourceType.Vector) { + applySourceType(type: GaoDeSourceType = GaoDeSourceType.Vector) { const url = getGaoDeSourceUrl(type); this.source.setUrl(url); + } + + setSourceType(type: GaoDeSourceType = GaoDeSourceType.Vector) { + this.activeSourceType.value = type; + this.applySourceType(type); } addMarkerLayer(dataList: any[], options: any) { const { markerOpt } = options; @@ -193,6 +198,16 @@ return overlay; } + adjustViewToMarkers() { + const overlays = this.map.getOverlays().getArray(); + + const filteredOverlays = overlays.filter((overlay) => { + const type = overlay.get('type'); + return type === OverlayType.Marker; + }); + this.adjustViewToOverlays(filteredOverlays); + } + adjustViewToOverlays(overlays: Overlay[]) { if (overlays.length === 0) return; const extent = overlays.reduce<number[] | null>((ext, item) => { @@ -253,7 +268,7 @@ setConfig(config: MapConfig) { this.activeSourceType.value = config.sourceType; this.markerIsVisible.value = config.markerIsVisible; - this.setSourceUrl(this.activeSourceType.value); + this.applySourceType(this.activeSourceType.value); this.toggleMarkerOverlayVisible(this.markerIsVisible.value); } -- Gitblit v1.9.3