From 85646597d18ce56bf7e513c7f5ba4838cc55069a Mon Sep 17 00:00:00 2001 From: ClemensF Date: Wed, 9 Sep 2020 22:45:36 +0200 Subject: [PATCH] Update WmsImageLayer.cs --- MapControl/Shared/WmsImageLayer.cs | 96 +++++++++++++++++------------- 1 file changed, 54 insertions(+), 42 deletions(-) diff --git a/MapControl/Shared/WmsImageLayer.cs b/MapControl/Shared/WmsImageLayer.cs index 30319e8f..207664a8 100644 --- a/MapControl/Shared/WmsImageLayer.cs +++ b/MapControl/Shared/WmsImageLayer.cs @@ -5,7 +5,6 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using System.IO; using System.Linq; using System.Threading.Tasks; using System.Xml.Linq; @@ -105,16 +104,49 @@ namespace MapControl { var uri = GetCapabilitiesRequestUri(); - try + if (!string.IsNullOrEmpty(uri)) { - using (var stream = await ImageLoader.HttpClient.GetStreamAsync(uri)) + try { - element = XDocument.Load(stream).Root; + using (var stream = await ImageLoader.HttpClient.GetStreamAsync(uri)) + { + element = XDocument.Load(stream).Root; + } + } + catch (Exception ex) + { + Debug.WriteLine("WmsImageLayer: {0}: {1}", uri, ex.Message); } } - catch (Exception ex) + } + + return element; + } + + /// + /// Loads an XElement from the URL returned by GetFeatureInfoRequestUri(). + /// + public async Task GetFeatureInfoAsync(Point position) + { + XElement element = null; + + if (ServiceUri != null) + { + var uri = GetFeatureInfoRequestUri(position, "text/xml"); + + if (!string.IsNullOrEmpty(uri)) { - Debug.WriteLine("WmsImageLayer: {0}: {1}", uri, ex.Message); + try + { + using (var stream = await ImageLoader.HttpClient.GetStreamAsync(uri)) + { + element = XDocument.Load(stream).Root; + } + } + catch (Exception ex) + { + Debug.WriteLine("WmsImageLayer: {0}: {1}", uri, ex.Message); + } } } @@ -132,46 +164,22 @@ namespace MapControl { var uri = GetFeatureInfoRequestUri(position, format); - try + if (!string.IsNullOrEmpty(uri)) { - response = await ImageLoader.HttpClient.GetStringAsync(uri); - } - catch (Exception ex) - { - Debug.WriteLine("WmsImageLayer: {0}: {1}", uri, ex.Message); + try + { + response = await ImageLoader.HttpClient.GetStringAsync(uri); + } + catch (Exception ex) + { + Debug.WriteLine("WmsImageLayer: {0}: {1}", uri, ex.Message); + } } } return response; } - /// - /// Loads an XElement from the URL returned by GetFeatureInfoRequestUri(). - /// - public async Task GetFeatureInfoAsync(Point position) - { - XElement element = null; - - if (ServiceUri != null) - { - var uri = GetFeatureInfoRequestUri(position, "text/xml"); - - try - { - using (var stream = await ImageLoader.HttpClient.GetStreamAsync(uri)) - { - element = XDocument.Load(stream).Root; - } - } - catch (Exception ex) - { - Debug.WriteLine("WmsImageLayer: {0}: {1}", uri, ex.Message); - } - } - - return element; - } - /// /// Loads an ImageSource from the URL returned by GetMapRequestUri(). /// @@ -240,9 +248,11 @@ namespace MapControl uri += "&BBOX=" + projection.GetBboxValue(mapRect); uri += "&WIDTH=" + (int)Math.Round(viewScale * mapRect.Width); uri += "&HEIGHT=" + (int)Math.Round(viewScale * mapRect.Height); + + uri = uri.Replace(" ", "%20"); } - return uri.Replace(" ", "%20"); + return uri; } /// @@ -289,12 +299,14 @@ namespace MapControl uri += "&I=" + (int)Math.Round(imagePos.X); uri += "&J=" + (int)Math.Round(imagePos.Y); uri += "&INFO_FORMAT=" + format; + + uri = uri.Replace(" ", "%20"); } - return uri.Replace(" ", "%20"); + return uri; } - private string GetRequestUri(string request) + protected string GetRequestUri(string request) { var uri = ServiceUri.ToString();