diff --git a/MapControl/Shared/TileSource.cs b/MapControl/Shared/TileSource.cs index 9cf96877..7f0976f9 100644 --- a/MapControl/Shared/TileSource.cs +++ b/MapControl/Shared/TileSource.cs @@ -61,7 +61,7 @@ namespace MapControl /// public static TileSource Parse(string uriTemplate) { - return new UriTileSource(uriTemplate); + return new UriTileSource { UriTemplate = uriTemplate }; } } } diff --git a/MapControl/Shared/UriTileSource.cs b/MapControl/Shared/UriTileSource.cs index bd1bf24e..1b638945 100644 --- a/MapControl/Shared/UriTileSource.cs +++ b/MapControl/Shared/UriTileSource.cs @@ -4,19 +4,25 @@ namespace MapControl { public class UriTileSource : TileSource { - private readonly string uriFormat; + private string uriTemplate; + private string uriFormat; - public UriTileSource(string uriTemplate) + public string UriTemplate { - uriFormat = uriTemplate - .Replace("{z}", "{0}") - .Replace("{x}", "{1}") - .Replace("{y}", "{2}") - .Replace("{s}", "{3}"); - - if (Subdomains == null && uriTemplate.Contains("{s}")) + get => uriTemplate; + set { - Subdomains = ["a", "b", "c"]; // default OpenStreetMap subdomains + uriTemplate = value; + uriFormat = uriTemplate + .Replace("{z}", "{0}") + .Replace("{x}", "{1}") + .Replace("{y}", "{2}") + .Replace("{s}", "{3}"); + + if (Subdomains == null && uriTemplate.Contains("{s}")) + { + Subdomains = ["a", "b", "c"]; // default OpenStreetMap subdomains + } } } @@ -39,7 +45,7 @@ namespace MapControl } } - public class TmsTileSource(string uriTemplate) : UriTileSource(uriTemplate) + public class TmsTileSource : UriTileSource { public override Uri GetUri(int zoomLevel, int column, int row) {