Back to Devexpress

How to: Obtain Data from a Web Map Service

windowsforms-115785-controls-and-libraries-map-control-examples-map-image-data-how-to-obtain-data-from-a-web-map-service.md

latest3.3 KB
Original Source

How to: Obtain Data from a Web Map Service

  • Nov 13, 2018
  • 2 minutes to read

This example demonstrates how to receive information from a Web Map Service using the WmsDataProvider.ResponseCapabilities event handler.

To do this, use the CapabilitiesRespondedEventArgs arguments of the event to specify a WMS active layer and obtain the required information.

csharp
using DevExpress.XtraMap;
using System.Windows.Forms;

namespace ResponseCapabilitiesHandler {
    public partial class Form1 : Form {
        ImageLayer WmsLayer {
            get { return (ImageLayer)mapControl.Layers["WmsImageLayer"]; }
        }
        WmsDataProvider Provider {
            get { return WmsLayer.DataProvider as WmsDataProvider; }
        }
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, System.EventArgs e) {
            // Handle the ResponseCapabilities event.
            Provider.ResponseCapabilities += OnResponseCapabalities;
        }
        void OnResponseCapabalities(object sender, CapabilitiesRespondedEventArgs e) {
            // Specify an active layer for the map control.
            Provider.ActiveLayerName = e.Layers[0].Name;
            // Recieve information on the active layer.
            label1.Text = string.Format("Layer name: {0}, Layer title: {1}", e.Layers[0].Name, e.Layers[0].Title);           
        }
    }
}
vb
Imports DevExpress.XtraMap
Imports System.Windows.Forms

Namespace ResponseCapabilitiesHandler
    Partial Public Class Form1
        Inherits Form

        Private ReadOnly Property WmsLayer() As ImageLayer
            Get
                Return CType(mapControl.Layers("WmsImageLayer"), ImageLayer)
            End Get
        End Property
        Private ReadOnly Property Provider() As WmsDataProvider
            Get
                Return TryCast(WmsLayer.DataProvider, WmsDataProvider)
            End Get
        End Property
        Public Sub New()
            InitializeComponent()
        End Sub
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Handle the ResponseCapabilities event.
            AddHandler Provider.ResponseCapabilities, AddressOf OnResponseCapabalities
        End Sub
        Private Sub OnResponseCapabalities(ByVal sender As Object, ByVal e As CapabilitiesRespondedEventArgs)
            ' Specify an active layer for the map control.
            Provider.ActiveLayerName = e.Layers(0).Name
            ' Recieve information on the active layer.
            label1.Text = String.Format("Layer name: {0}, Layer title: {1}", e.Layers(0).Name, e.Layers(0).Title)
        End Sub
    End Class
End Namespace

See Also

How to: Obtain a Collection of Available Layers in the ResponseCapabilities Event Handler