Skip to content

WMS maps are not displayed #3265

@gpsaliola

Description

@gpsaliola

Mapsui Version
5.0.2

Device
Android version 16

Describe the bug
WMS maps are not displayed.

This is the code I've used. What's wrong? Thank you.

                    WmsProvider? lProvider = null;
                    XmlDocument xml;
                    try
                    {
                        using HttpClient http = new HttpClient();

                        // Set provider properties
                        if (!string.IsNullOrEmpty(mReferer))
                            http.DefaultRequestHeaders.Referrer = new Uri(mReferer);
                        http.DefaultRequestHeaders.UserAgent.ParseAdd(AppGeneral.cHttpValueUserAgent);

                        // Load xml document
                        string wmsXmlString = await http.GetStringAsync(lUrlWMS);
                        xml = new XmlDocument();
                        xml.LoadXml(wmsXmlString);

                        // Create provider
                        lProvider = new WmsProvider(xml, async (uri) =>
                        {
                            using HttpRequestMessage? req = new HttpRequestMessage(HttpMethod.Get, uri);
                            if (!string.IsNullOrEmpty(mReferer))
                                req.Headers.Referrer = new Uri(mReferer);

                            using var resp = await http.SendAsync(req);
                            resp.EnsureSuccessStatusCode();
                            return await resp.Content.ReadAsByteArrayAsync();
                        });
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message + AppGeneral.cCarriageReturn + ( ex.InnerException == null ? "" : ex.InnerException.Message));
                    }

                    // Set provider properties
                    lProvider.ContinueOnError = true;
                    lProvider.TimeOut = cTimeOut;
                    lProvider.UserAgent = AppGeneral.cHttpValueUserAgent;

                    // Set CRS
                    string lCrs;
                    if (lProvider.IsCrsSupported("EPSG:3857") == true) lCrs = "EPSG:3857";
                    else if (lProvider.IsCrsSupported("EPSG:4326") == true) lCrs = "EPSG:4326";
                    else if (lProvider.IsCrsSupported("EPSG:6706") == true) lCrs = "EPSG:6706";
                    else throw new Exception(AppTexts.EPSGNotSupported);
                    lProvider.CRS = lCrs;

                    // Set layers
                    string[] lLayers = layer.Split(Convert.ToChar(","));
                    foreach (string lLayer in lLayers)
                    {
                        lProvider.AddLayer(lLayer);
                    }

                    // Set mime type
                    string lMimeType;
                    if (lProvider.OutputFormats.Contains("image/png")) lMimeType = "image/png";
                    else if (lProvider.OutputFormats.Contains("image/jpeg")) lMimeType = "image/jpeg";
                    else if (lProvider.OutputFormats.Contains("image/gif")) lMimeType = "image/gif";
                    else lMimeType = lProvider.OutputFormats[0];
                    lProvider.SetImageFormat(lMimeType);

                    // Return layer
                    ImageLayer imageLayer = new ImageLayer(AppGeneral.cLayerWebMap)
                    {
                        DataSource = lProvider,
                        Style = new RasterStyle(),
                    };
                    return imageLayer;

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions