From db7ed3cb11f3eed020d7eba8d1ba18f3d9494164 Mon Sep 17 00:00:00 2001 From: David Moor Date: Wed, 15 Jul 2026 08:43:59 +0100 Subject: [PATCH] Implement initial map reference system in BaseMapLayer Added initial map reference system handling for tile source changes. --- EGIS.Controls/BaseMapLayer.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/EGIS.Controls/BaseMapLayer.cs b/EGIS.Controls/BaseMapLayer.cs index c95564b..d938834 100644 --- a/EGIS.Controls/BaseMapLayer.cs +++ b/EGIS.Controls/BaseMapLayer.cs @@ -32,6 +32,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using EGIS.Projections; namespace EGIS.Controls @@ -105,6 +106,7 @@ private void Map_ZoomLevelChanged(object sender, EventArgs e) } private TileSource _tileSource; + private ICRS _initialMapReferenceSystem; private bool disposedValue; /// @@ -124,9 +126,14 @@ public TileSource TileSource _tileSource = value; if (previousTileSource == null) { + _initialMapReferenceSystem = mapReference.MapCoordinateReferenceSystem; //if TileSource changed from null set the maps CRS to Wgs84PseudoMercator mapReference.MapCoordinateReferenceSystem = EGIS.Projections.CoordinateReferenceSystemFactory.Default.GetCRSById(EGIS.Projections.CoordinateReferenceSystemFactory.Wgs84PseudoMercatorEpsgCode); } + else if (_tileSource == null) + { + mapReference.MapCoordinateReferenceSystem = _initialMapReferenceSystem; + } mapReference.Invalidate(RefreshMode.BaseMapLayer); } }