View in MAUI WPF WinUI View on GitHub Sample viewer app

Find features in a feature table which match an SQL query.

Image of feature layer query

Use case

Query expressions can be used in ArcGIS to select a subset of features from a feature table. This is most useful in large or complicated data sets. A possible use case might be on a feature table marking the location of street furniture through a city. A user may wish to query by a TYPE column to return “benches”. In this sample, we query a U.S. state by STATE_NAME from a feature table containing all U.S. states.

How to use the sample

Input the name of a U.S. state into the text field. When you click the button, a query is performed and the matching features are highlighted or an error is returned.

How it works

  1. Create a ServiceFeatureTable using the URL of a feature service.
  2. Create a QueryParameters with a where clause specified using the WhereClause property.
  3. Perform the query using QueryFeaturesAsync(query) on the service feature table.
  4. When complete, the query will return a FeatureQueryResult which can be iterated over to get the matching features.

Relevant API

  • FeatureLayer
  • FeatureQueryResult
  • QueryParameters
  • ServiceFeatureTable

About the data

This sample uses U.S. State polygon features from the USA 2016 Daytime Population feature service.

Tags

query, search

Sample Code

FeatureLayerQuery.xaml FeatureLayerQuery.xaml FeatureLayerQuery.xaml.cs
<UserControl x:Class="ArcGIS.WPF.Samples.FeatureLayerQuery.FeatureLayerQuery"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013">
<Grid>
<esri:MapView x:Name="MyMapView" />
<Border Style="{StaticResource BorderStyle}">
<StackPanel Orientation="Vertical">
<TextBlock FontWeight="SemiBold"
Text="Enter a state name and click 'Query' to search."
TextAlignment="Center"
TextWrapping="Wrap" />
<TextBox x:Name="QueryEntry"
Margin="0,5,0,0"
Text="New York"
TextAlignment="Center" />
<Button Margin="0,5,0,0"
Click="OnQueryClicked"
Content="Query" />
</StackPanel>
</Border>
</Grid>
</UserControl>