Identify WMS features
Identify features in a WMS layer and display the associated popup content.
Map symbols generally showcase only one or two data points via color or size, but the data can contain many more attributes than what is shown on the map. These additional attributes can be shown in an attribute table or popup for the map viewer to explore interactively. For example, the map might be symbolized to show population density with different shades of a color, but it might contain other interesting attributes to explore in a table, such as median income, educational attainment, and median age.
Tap a feature to identify it. The HTML content associated with the feature will be displayed in a web view.
- A WMS layer is added via URL and a layer name.
- When the map is tapped,
MapView.IdentifyLayerAsyncis used to find matching results within the WMS layer.
- If there is a matching feature, the HTML property is taken via a lookup in the feature's attribute dictionary.
- This particular server will produce an identify result with an empty table when there is no identified feature. In all other cases, a table with an OBJECTID column is added. This sample checks for the presence of OBJECTID in the HTML, and doesn't display the result if it is missing.
- The HTML is displayed in the web view.
Note: the service returns HTML regardless of whether there was an identify result. The sample uses a simple rule to hide empty results.
This sample shows a map of surface water sources in each U.S. state. States with more surface and ground water sources appear darker blue. The attribute table includes counts of surface and ground water sources. This map service is provided by the U.S. EPA.
callout, IdentifyLayerAsync, OGC, ShowCalloutAt, web map service, WMS
<?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.WmsIdentify.WmsIdentify"> <StackLayout Orientation="Vertical"> <Label Text="Tap to identify features." VerticalOptions="Start"/> <esriUI:MapView x:Name="MyMapView" VerticalOptions="FillAndExpand" /> </StackLayout> </ContentPage>