Update BitmapTileMatrixLayer.cs

This commit is contained in:
ClemensFischer 2025-12-04 10:33:23 +01:00
parent d09832988c
commit e10f3879d4

View file

@ -76,18 +76,16 @@ namespace MapControl
var xMax = (int)Math.Floor((bounds.X + bounds.Width) / WmtsTileMatrix.TileWidth); var xMax = (int)Math.Floor((bounds.X + bounds.Width) / WmtsTileMatrix.TileWidth);
var yMax = (int)Math.Floor((bounds.Y + bounds.Height) / WmtsTileMatrix.TileHeight); var yMax = (int)Math.Floor((bounds.Y + bounds.Height) / WmtsTileMatrix.TileHeight);
// Total tile matrix width in meters. if (!WmtsTileMatrix.HasFullHorizontalCoverage)
//
var totalWidth = WmtsTileMatrix.MatrixWidth * WmtsTileMatrix.TileWidth / WmtsTileMatrix.Scale;
if (Math.Abs(totalWidth - 360d * MapProjection.Wgs84MeterPerDegree) > 1d)
{ {
// No full longitudinal coverage, restrict x index. // Set X range limits.
// //
xMin = Math.Max(xMin, 0); xMin = Math.Max(xMin, 0);
xMax = Math.Min(Math.Max(xMax, 0), WmtsTileMatrix.MatrixWidth - 1); xMax = Math.Min(Math.Max(xMax, 0), WmtsTileMatrix.MatrixWidth - 1);
} }
// Set Y range limits.
//
yMin = Math.Max(yMin, 0); yMin = Math.Max(yMin, 0);
yMax = Math.Min(Math.Max(yMax, 0), WmtsTileMatrix.MatrixHeight - 1); yMax = Math.Min(Math.Max(yMax, 0), WmtsTileMatrix.MatrixHeight - 1);