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