diff --git a/MapControl/Shared/TileSource.cs b/MapControl/Shared/TileSource.cs index c1976025..e77fc241 100644 --- a/MapControl/Shared/TileSource.cs +++ b/MapControl/Shared/TileSource.cs @@ -1,5 +1,4 @@ using System; -using System.Security.Policy; using System.Text; using System.Threading.Tasks; #if WPF diff --git a/MapControl/Shared/WmtsTileLayer.cs b/MapControl/Shared/WmtsTileLayer.cs index ba9ca8ba..5bbb78de 100644 --- a/MapControl/Shared/WmtsTileLayer.cs +++ b/MapControl/Shared/WmtsTileLayer.cs @@ -131,12 +131,7 @@ namespace MapControl } else if (UpdateChildLayers(tileMatrixSet)) { - var tileSource = new WmtsTileSource - { - UriTemplate = TileUriTemplate, - TileMatrixSet = tileMatrixSet - }; - + var tileSource = new WmtsTileSource(tileMatrixSet, TileUriTemplate); var cacheName = SourceName; if (!string.IsNullOrEmpty(cacheName)) diff --git a/MapControl/Shared/WmtsTileSource.cs b/MapControl/Shared/WmtsTileSource.cs index 7810e507..dec386cc 100644 --- a/MapControl/Shared/WmtsTileSource.cs +++ b/MapControl/Shared/WmtsTileSource.cs @@ -1,24 +1,30 @@ using System; +using System.Collections.Generic; using System.Text; namespace MapControl { public class WmtsTileSource : UriTileSource { - public WmtsTileMatrixSet TileMatrixSet { get; set; } + private readonly IList tileMatrixes; + + public WmtsTileSource(WmtsTileMatrixSet tileMatrixSet, string uriTemplate) + { + tileMatrixes = tileMatrixSet.TileMatrixes; + UriTemplate = uriTemplate.Replace("{TileMatrixSet}", tileMatrixSet.Identifier); + } public override Uri GetUri(int zoomLevel, int column, int row) { Uri uri = null; if (UriTemplate != null && - TileMatrixSet != null && - TileMatrixSet.TileMatrixes.Count > zoomLevel) + tileMatrixes != null && + tileMatrixes.Count > zoomLevel) { var uriBuilder = new StringBuilder(UriTemplate); - uriBuilder.Replace("{TileMatrixSet}", TileMatrixSet.Identifier); - uriBuilder.Replace("{TileMatrix}", TileMatrixSet.TileMatrixes[zoomLevel].Identifier); + uriBuilder.Replace("{TileMatrix}", tileMatrixes[zoomLevel].Identifier); uriBuilder.Replace("{TileCol}", column.ToString()); uriBuilder.Replace("{TileRow}", row.ToString());