From 264f751d4e0c35916a9fabddc64a90e9f3e3328c Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Fri, 5 Dec 2025 08:10:14 +0100 Subject: [PATCH] Updated TileMatrix --- MapControl/Shared/ImageTileList.cs | 1 + MapControl/Shared/TileMatrix.cs | 2 ++ MapControl/WPF/BitmapTileMatrixLayer.cs | 6 +++--- MapControl/WPF/DrawingTileMatrixLayer.cs | 5 +++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/MapControl/Shared/ImageTileList.cs b/MapControl/Shared/ImageTileList.cs index 5ac6ebf6..12342531 100644 --- a/MapControl/Shared/ImageTileList.cs +++ b/MapControl/Shared/ImageTileList.cs @@ -10,6 +10,7 @@ namespace MapControl } public ImageTileList(IEnumerable source, TileMatrix tileMatrix, int columnCount) + : base(tileMatrix.Width * tileMatrix.Height) { FillMatrix(source, tileMatrix.ZoomLevel, tileMatrix.XMin, tileMatrix.YMin, tileMatrix.XMax, tileMatrix.YMax, columnCount); } diff --git a/MapControl/Shared/TileMatrix.cs b/MapControl/Shared/TileMatrix.cs index 07c0a5df..8bbc3b17 100644 --- a/MapControl/Shared/TileMatrix.cs +++ b/MapControl/Shared/TileMatrix.cs @@ -7,5 +7,7 @@ public int YMin => yMin; public int XMax => xMax; public int YMax => yMax; + public int Width => xMax - xMin + 1; + public int Height => yMax - yMin + 1; } } diff --git a/MapControl/WPF/BitmapTileMatrixLayer.cs b/MapControl/WPF/BitmapTileMatrixLayer.cs index 5c437832..de51b3b8 100644 --- a/MapControl/WPF/BitmapTileMatrixLayer.cs +++ b/MapControl/WPF/BitmapTileMatrixLayer.cs @@ -107,8 +107,8 @@ namespace MapControl private void CreateBitmap() { - var width = WmtsTileMatrix.TileWidth * (TileMatrix.XMax - TileMatrix.XMin + 1); - var height = WmtsTileMatrix.TileHeight * (TileMatrix.YMax - TileMatrix.YMin + 1); + var width = WmtsTileMatrix.TileWidth * TileMatrix.Width; + var height = WmtsTileMatrix.TileHeight * TileMatrix.Height; imageBrush.ImageSource = new WriteableBitmap(width, height, 96, 96, PixelFormats.Pbgra32, null); imageBrush.Viewport = new Rect(0, 0, width, height); @@ -116,7 +116,7 @@ namespace MapControl private void CreateTiles() { - var tiles = new List(); + var tiles = new List(TileMatrix.Width * TileMatrix.Height); for (var y = TileMatrix.YMin; y <= TileMatrix.YMax; y++) { diff --git a/MapControl/WPF/DrawingTileMatrixLayer.cs b/MapControl/WPF/DrawingTileMatrixLayer.cs index 0b09c035..14bc470b 100644 --- a/MapControl/WPF/DrawingTileMatrixLayer.cs +++ b/MapControl/WPF/DrawingTileMatrixLayer.cs @@ -91,8 +91,9 @@ namespace MapControl private void CreateTiles() { - var tiles = new List(); - var drawings = new DrawingCollection(); + var tileCount = TileMatrix.Width * TileMatrix.Height; + var tiles = new List(tileCount); + var drawings = new DrawingCollection(tileCount); for (var y = TileMatrix.YMin; y <= TileMatrix.YMax; y++) {