Display custom labels on a feature layer.
Labeling features is useful to visually display a key piece of information or attribute of a feature on a map. For example, you may want to label rivers or street with their names.
Pan and zoom around the United States. Labels for congressional districts will be shown in red for Republican districts and blue for Democrat districts. Notice how labels pop into view as you zoom in.
- Create a
ServiceFeatureTable
using a feature service URL. - Create a
FeatureLayer
from the service feature table. - Create a
TextSymbol
to use for displaying the label text. - Create a JSON string for the label definition.
- Set the "LabelExpressionInfo.expression" key to express what the text the label should display. You can use fields of the feature by using
$feature.field_name
in the expression. - To use the text symbol, set the "symbol" key to the symbol's JSON representation using
textSymbol.ToJson()
.
- Set the "LabelExpressionInfo.expression" key to express what the text the label should display. You can use fields of the feature by using
- Create a label definition from the JSON using
LabelDefinition.FromJson(json)
. - Add the definition to the feature layer with
featureLayer.LabelDefinitions.Add(labelDefinition)
. - Lastly, enable labels on the layer using
featureLayer.LabelsEnabled
.
- FeatureLayer
- LabelDefinition
- TextSymbol
This sample uses the USA 116th Congressional Districts feature layer hosted on ArcGIS Online.
Help regarding the JSON syntax for defining the LabelDefinition.FromJson
syntax can be found in labeling info in the Web map specification.
attribute, deconfliction, label, labeling, string, symbol, text, visualization