Version 4.17.0: Added support for WMTS

This commit is contained in:
ClemensF 2020-03-20 21:09:19 +01:00
parent ce979ce54c
commit f1ea075047
2 changed files with 11 additions and 10 deletions

View file

@ -20,7 +20,8 @@ namespace MapControl
public class WmtsTileLayer : MapTileLayerBase public class WmtsTileLayer : MapTileLayerBase
{ {
public static readonly DependencyProperty CapabilitiesUriProperty = DependencyProperty.Register( public static readonly DependencyProperty CapabilitiesUriProperty = DependencyProperty.Register(
nameof(CapabilitiesUri), typeof(Uri), typeof(WmtsTileLayer), new PropertyMetadata(null)); nameof(CapabilitiesUri), typeof(Uri), typeof(WmtsTileLayer),
new PropertyMetadata(null, (o, e) => ((WmtsTileLayer)o).TileMatrixSet = null));
public static readonly DependencyProperty LayerIdentifierProperty = DependencyProperty.Register( public static readonly DependencyProperty LayerIdentifierProperty = DependencyProperty.Register(
nameof(LayerIdentifier), typeof(string), typeof(WmtsTileLayer), new PropertyMetadata(null)); nameof(LayerIdentifier), typeof(string), typeof(WmtsTileLayer), new PropertyMetadata(null));
@ -169,7 +170,7 @@ namespace MapControl
private async void OnLoaded(object sender, RoutedEventArgs e) private async void OnLoaded(object sender, RoutedEventArgs e)
{ {
if (CapabilitiesUri != null) if (TileMatrixSet == null && CapabilitiesUri != null)
{ {
try try
{ {

View file

@ -19,17 +19,17 @@ namespace MapControl
public override Uri GetUri(int x, int y, int zoomLevel) public override Uri GetUri(int x, int y, int zoomLevel)
{ {
if (zoomLevel < 0 || zoomLevel >= tileMatrixes.Count) Uri uri = null;
if (zoomLevel >= 0 && zoomLevel < tileMatrixes.Count)
{ {
return null; uri = new Uri(UriFormat
.Replace("{TileMatrix}", tileMatrixes[zoomLevel].Identifier)
.Replace("{TileCol}", x.ToString())
.Replace("{TileRow}", y.ToString()));
} }
var url = UriFormat return uri;
.Replace("{TileMatrix}", tileMatrixes[zoomLevel].Identifier)
.Replace("{TileCol}", x.ToString())
.Replace("{TileRow}", y.ToString());
return new Uri(url);
} }
} }
} }