From baea814df051de7cf6eb01d925243617559263d5 Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Mon, 1 Dec 2025 21:21:28 +0100 Subject: [PATCH] Updated WmtsTileMatrixSet --- MapControl/Shared/WmtsCapabilities.cs | 7 ++++++ MapControl/Shared/WmtsTileLayer.cs | 6 +++--- MapControl/Shared/WmtsTileMatrixSet.cs | 30 -------------------------- 3 files changed, 10 insertions(+), 33 deletions(-) delete mode 100644 MapControl/Shared/WmtsTileMatrixSet.cs diff --git a/MapControl/Shared/WmtsCapabilities.cs b/MapControl/Shared/WmtsCapabilities.cs index f28a85c5..9e152a7e 100644 --- a/MapControl/Shared/WmtsCapabilities.cs +++ b/MapControl/Shared/WmtsCapabilities.cs @@ -13,6 +13,13 @@ using Avalonia; namespace MapControl { + public class WmtsTileMatrixSet(string identifier, string supportedCrsId, IEnumerable tileMatrixes) + { + public string Identifier => identifier; + public string SupportedCrsId => supportedCrsId; + public List TileMatrixes { get; } = tileMatrixes.OrderBy(m => m.Scale).ToList(); + } + /// /// For reference see https://www.ogc.org/standards/wmts, 07-057r7_Web_Map_Tile_Service_Standard.pdf /// diff --git a/MapControl/Shared/WmtsTileLayer.cs b/MapControl/Shared/WmtsTileLayer.cs index fd9d846b..03bd3fbd 100644 --- a/MapControl/Shared/WmtsTileLayer.cs +++ b/MapControl/Shared/WmtsTileLayer.cs @@ -217,6 +217,9 @@ namespace MapControl { var capabilities = await WmtsCapabilities.ReadCapabilitiesAsync(CapabilitiesUri, Layer); + Layer = capabilities.Layer; + UriTemplate = capabilities.UriTemplate; + foreach (var tms in capabilities.TileMatrixSets .Where(tms => !TileMatrixSets.ContainsKey(tms.SupportedCrsId) || PreferredTileMatrixSets != null && @@ -225,9 +228,6 @@ namespace MapControl TileMatrixSets[tms.SupportedCrsId] = tms; } - Layer = capabilities.Layer; - UriTemplate = capabilities.UriTemplate; - UpdateTileCollection(); } catch (Exception ex) diff --git a/MapControl/Shared/WmtsTileMatrixSet.cs b/MapControl/Shared/WmtsTileMatrixSet.cs deleted file mode 100644 index 6b8bb93d..00000000 --- a/MapControl/Shared/WmtsTileMatrixSet.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace MapControl -{ - public class WmtsTileMatrixSet - { - public WmtsTileMatrixSet(string identifier, string supportedCrsId, IEnumerable tileMatrixes) - { - if (string.IsNullOrEmpty(supportedCrsId)) - { - throw new ArgumentException($"The {nameof(supportedCrsId)} argument must not be null or empty.", nameof(supportedCrsId)); - } - - if (tileMatrixes == null || !tileMatrixes.Any()) - { - throw new ArgumentException($"The {nameof(tileMatrixes)} argument must not be null or an empty collection.", nameof(tileMatrixes)); - } - - Identifier = identifier; - SupportedCrsId = supportedCrsId; - TileMatrixes = tileMatrixes.OrderBy(m => m.Scale).ToList(); - } - - public string Identifier { get; } - public string SupportedCrsId { get; } - public IList TileMatrixes { get; } - } -}