Click or drag to resize

WmsLayerInfo Class

Information about a WMS layer as described by a WMS service.
Inheritance Hierarchy
SystemObject
  Esri.ArcGISRuntime.OgcWmsLayerInfo

Namespace:  Esri.ArcGISRuntime.Ogc
Assembly:  Esri.ArcGISRuntime (in Esri.ArcGISRuntime.dll) Version: 100.7.0.0
Syntax
C#
public sealed class WmsLayerInfo

The WmsLayerInfo type exposes the following members.

Properties
  NameDescription
Public propertyDescription
Gets a brief narrative description (abstract) of this WMS layer.
Public propertyExtent
Gets the WMS layer's extent.
Public propertyFixedImageHeight
Gets the fixed image height.
Public propertyFixedImageWidth
Gets the fixed width of maps the service is capable of producing, if specified.
Public propertyIsOpaque
Gets a value indicating whether the WMS layer's content should be considered "opaque".
Public propertyIsQueryable
Gets a value indicating whether the WMS layer is queryable.
Public propertyKeywords
Gets a list of keywords defined for the WMS layer, if specified.
Public propertyCode exampleLayerInfos
Gets list of sublayers of the WMS layer.
Public propertyName
Gets the uniquely-identifying name of the WMS layer.
Public propertySpatialReferences
Gets a set of additional spatial references that the WMS layer supports.
Public propertyCode exampleStyles
Gets the styles available for this WMS layer.
Public propertyCode exampleTitle
Gets the human-readable title of the WMS layer.
Top
Examples

Android

Example Name: StyleWmsLayer

Discover available styles and apply them to WMS sublayers.

Code example screen shot.

C#
// Copyright 2018 Esri.
// 
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
// language governing permissions and limitations under the License.

using Android.App;
using Android.OS;
using Android.Widget;
using Esri.ArcGISRuntime.Mapping;
using Esri.ArcGISRuntime.UI.Controls;
using System;
using System.Collections.Generic;
using Android.Views;
using Esri.ArcGISRuntime.Geometry;

namespace ArcGISRuntime.Samples.StyleWmsLayer
{
    [Activity (ConfigurationChanges=Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)]
    [ArcGISRuntime.Samples.Shared.Attributes.Sample(
        "Style WMS layers",
        "Layers",
        "This sample demonstrates how to select from the available styles on WMS sublayers. ",
        "Click to select from one of the two pre-set styles.")]
    public class StyleWmsLayer : Activity
    {
        // Hold the URL to the service, which has satellite imagery covering the state of Minnesota.
        private Uri _wmsUrl = new Uri("https://imageserver.gisdata.mn.gov/cgi-bin/mncomp?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities");

        // Hold a list of uniquely-identifying WMS layer names to display.
        private List<String> _wmsLayerNames = new List<string> { "mncomp" };

        // Hold a reference to the layer to enable re-styling.
        private WmsLayer _mnWmsLayer;

        // Hold references to the UI controls.
        private MapView _myMapView;
        private Button _firstStyleButton;
        private Button _secondStyleButton;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            Title = "Style WMS layers";

            // Create the UI, setup the control references.
            CreateLayout();

            // Initialize the map.
            InitializeAsync();
        }

        private void CreateLayout()
        {
            // Create a new vertical layout for the app.
            LinearLayout layout = new LinearLayout(this) { Orientation = Orientation.Vertical };

            // Create the UI components.
            TextView helpLabel = new TextView(this)
            {
                Text = "Choose a style",
                TextAlignment = TextAlignment.Center
            };
            _firstStyleButton = new Button(this)
            {
                Text = "Default",
                Enabled = false
            };
            _secondStyleButton = new Button(this)
            {
                Text = "Contrast stretch",
                Enabled = false
            };

            // Subscribe to events.
            _firstStyleButton.Click += FirstStyleButton_Clicked;
            _secondStyleButton.Click += SecondStyleButton_Clicked;

            // Add the views to the layout.
            layout.AddView(helpLabel);
            layout.AddView(_firstStyleButton);
            layout.AddView(_secondStyleButton);
            _myMapView = new MapView(this);
            layout.AddView(_myMapView);

            // Show the layout in the app.
            SetContentView(layout);
        }

        private async void InitializeAsync()
        {
            try
            {
                // Create a map with spatial reference appropriate for the service.
                Map myMap = new Map(SpatialReference.Create(26915)) {MinScale = 7000000.0};

                // Create a new WMS layer displaying the specified layers from the service.
                // The default styles are chosen by default.
                _mnWmsLayer = new WmsLayer(_wmsUrl, _wmsLayerNames);

                // Wait for the layer to load.
                await _mnWmsLayer.LoadAsync();

                // Center the map on the layer's contents.
                myMap.InitialViewpoint = new Viewpoint(_mnWmsLayer.FullExtent);

                // Add the layer to the map.
                myMap.OperationalLayers.Add(_mnWmsLayer);

                // Add the map to the view.
                _myMapView.Map = myMap;

                // Enable the buttons.
                _firstStyleButton.Enabled = true;
                _secondStyleButton.Enabled = true;
            }
            catch (Exception ex)
            {
                new AlertDialog.Builder(this).SetMessage(ex.ToString()).SetTitle("Error").Show();
            }
        }

        private void FirstStyleButton_Clicked(object sender, EventArgs e)
        {
            // Get the available styles from the first sublayer.
            IReadOnlyList<string> styles = _mnWmsLayer.Sublayers[0].SublayerInfo.Styles;

            // Apply the first style to the first sublayer.
            _mnWmsLayer.Sublayers[0].CurrentStyle = styles[0];
        }

        private void SecondStyleButton_Clicked(object sender, EventArgs e)
        {
            // Get the available styles from the first sublayer.
            IReadOnlyList<string> styles = _mnWmsLayer.Sublayers[0].SublayerInfo.Styles;

            // Apply the second style to the first sublayer.
            _mnWmsLayer.Sublayers[0].CurrentStyle = styles[1];
        }
    }
}
Examples

Xamarin Forms Android

Example Name: StyleWmsLayer

Discover available styles and apply them to WMS sublayers.

Code example screen shot.

C#
// Copyright 2018 Esri.
// 
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
// language governing permissions and limitations under the License.

using Esri.ArcGISRuntime.Mapping;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Esri.ArcGISRuntime.Geometry;
using Xamarin.Forms;

namespace ArcGISRuntime.Samples.StyleWmsLayer
{
    [ArcGISRuntime.Samples.Shared.Attributes.Sample(
        "Style WMS layers",
        "Layers",
        "This sample demonstrates how to select from the available styles on WMS sublayers. ",
        "Click to select from one of the two pre-set styles.")]
    public partial class StyleWmsLayer
    {
        // Hold the URL to the service, which has satellite imagery covering the state of Minnesota. 
        private Uri _wmsUrl = new Uri("https://imageserver.gisdata.mn.gov/cgi-bin/mncomp?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities");

        // Hold a list of uniquely-identifying WMS layer names to display.
        private List<String> _wmsLayerNames = new List<string> { "mncomp" };

        // Hold a reference to the layer to enable re-styling.
        private WmsLayer _mnWmsLayer;

        public StyleWmsLayer()
        {
            InitializeComponent();

            // Execute initialization.
            InitializeAsync();
        }

        private async void InitializeAsync()
        {
            try
            {
                // Create a map with spatial reference appropriate for the service.
                Map myMap = new Map(SpatialReference.Create(26915)) {MinScale = 7000000.0};

                // Create a new WMS layer displaying the specified layers from the service.
                // The default styles are chosen by default.
                _mnWmsLayer = new WmsLayer(_wmsUrl, _wmsLayerNames);

                // Wait for the layer to load.
                await _mnWmsLayer.LoadAsync();

                // Center the map on the layer's contents.
                myMap.InitialViewpoint = new Viewpoint(_mnWmsLayer.FullExtent);

                // Add the layer to the map.
                myMap.OperationalLayers.Add(_mnWmsLayer);

                // Add the map to the view.
                MyMapView.Map = myMap;

                // Enable the buttons.
                FirstStyleButton.IsEnabled = true;
                SecondStyleButton.IsEnabled = true;
            }
            catch (Exception ex)
            {
                await Application.Current.MainPage.DisplayAlert("Error", ex.ToString(), "OK");
            }
        }

        private void FirstStyleButton_Clicked(object sender, EventArgs e)
        {
            // Get the available styles from the first sublayer.
            IReadOnlyList<string> styles = _mnWmsLayer.Sublayers[0].SublayerInfo.Styles;

            // Apply the first style to the first sublayer.
            _mnWmsLayer.Sublayers[0].CurrentStyle = styles[0];
        }

        private void SecondStyleButton_Clicked(object sender, EventArgs e)
        {
            // Get the available styles from the first sublayer.
            IReadOnlyList<string> styles = _mnWmsLayer.Sublayers[0].SublayerInfo.Styles;

            // Apply the second style to the first sublayer.
            _mnWmsLayer.Sublayers[0].CurrentStyle = styles[1];
        }
    }
}
XAML
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:esriUI="clr-namespace:Esri.ArcGISRuntime.Xamarin.Forms;assembly=Esri.ArcGISRuntime.Xamarin.Forms"
             x:Class="ArcGISRuntime.Samples.StyleWmsLayer.StyleWmsLayer">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Label
                Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
                Text="Choose a style"
                HorizontalTextAlignment="Center" />
        <Button x:Name="FirstStyleButton"
                Grid.Row="1" Grid.Column="0"
                Text="Default"
                Clicked="FirstStyleButton_Clicked" />
        <Button x:Name="SecondStyleButton"
                Grid.Row="1" Grid.Column="1"
                Text="Contrast stretch"
                Clicked="SecondStyleButton_Clicked" />
        <esriUI:MapView x:Name="MyMapView"
                        Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" />
    </Grid>
</ContentPage>
See Also
Additional Examples
Hyperlink to ExampleDescription
StyleWmsLayerDiscover available styles and apply them to WMS sublayers.
WmsServiceCatalogConnect to a WMS service and show the available layers and sublayers. Layers are shown in a hierarchy. Selecting a group layer will recursively select all sublayers for display.