![]() ![]() |
ESRI.ArcGIS.ADF.IMS | |
ValueMapLabelRenderer Class | |
Members Example See Also Send Feedback |
ESRI.ArcGIS.ADF.IMS.Display.Renderer Namespace : ValueMapLabelRenderer Class |

Visual Basic (Declaration) | |
---|---|
<SerializableAttribute()> Public Class ValueMapLabelRenderer Inherits LabelRenderer |
Visual Basic (Usage) | ![]() |
---|---|
Dim instance As ValueMapLabelRenderer |
C# | |
---|---|
[SerializableAttribute()] public class ValueMapLabelRenderer : LabelRenderer |
The following example creates a new ValueMapLabelRenderer for cities, adds three ranges for small, medium and large cities, sets different font size and color for each range, and assigns the new renderer to the cities map layer.
For an example of using unique values for labels, see UniqueLabelValue.
Visual Basic | ![]() |
---|---|
' Set up required properties for ValueMapLabelRenderer Dim rendererValueField As String = "POPULATION" ' Field used to assign features to ranges Dim rendererLabelField As String = "NAME" ' Field used as label text Dim defaultSymbolFont As New FontInfo("Arial", 8, Drawing.Color.DarkGray, FontStyle.Regular) Dim defaultRendererSymbol As New TextSymbol(defaultSymbolFont, TextCasing.None, Drawing.Color.Empty) ' Create a new ValueMapLabelRenderer and set required label field Dim valueMapLblRend As New ValueMapLabelRenderer("Other", defaultRendererSymbol, rendererValueField) valueMapLblRend.LabelField = rendererLabelField Dim textFont As FontInfo Dim valueRange As LabelValueRange ' Create three value ranges, for three different city population sizes valueRange = New LabelValueRange() valueRange.MinValue = "1" valueRange.MaxValue = "100000" textFont = New FontInfo("Arial", 8, Drawing.Color.Blue, FontStyle.Regular) valueRange.Symbol = New TextSymbol(textFont, TextCasing.None, Drawing.Color.Empty) valueRange.SymbolLabel = "1 to 100,000" valueMapLblRend.Values.Add(valueRange) valueRange = New LabelValueRange() valueRange.MinValue = "100000" valueRange.MaxValue = "1000000" textFont = New FontInfo("Arial", 12, Drawing.Color.Green, FontStyle.Regular) valueRange.Symbol = New TextSymbol(textFont, TextCasing.None, Drawing.Color.Empty) valueRange.SymbolLabel = "100,000 to 1,000,000" valueMapLblRend.Values.Add(valueRange) valueRange = New LabelValueRange() valueRange.MinValue = "1000000" valueRange.MaxValue = "50000000" textFont = New FontInfo("Arial", 18, Drawing.Color.Red, FontStyle.Regular) valueRange.Symbol = New TextSymbol(textFont, TextCasing.None, Drawing.Color.Empty) valueRange.SymbolLabel = "Over 1,000,000" valueMapLblRend.Values.Add(valueRange) ' Assign the ValueMapLabelRenderer to an existing point layer Dim layer As FeatureLayer = mapView.Layers.FindByName("Cities") layer.Renderer = valueMapLblRend |
C# | ![]() |
---|---|
// Set up required properties for ValueMapLabelRenderer string rendererValueField = "POPULATION"; // Field used to assign features to ranges string rendererLabelField = "NAME"; // Field used as label text FontInfo defaultSymbolFont = new FontInfo("Arial", 8, Drawing.Color.DarkGray, FontStyle.Regular); TextSymbol defaultRendererSymbol = new TextSymbol(defaultSymbolFont, TextCasing.None, Drawing.Color.Empty); // Create a new ValueMapLabelRenderer and set required label field ValueMapLabelRenderer valueMapLblRend = new ValueMapLabelRenderer("Other", defaultRendererSymbol, rendererValueField); valueMapLblRend.LabelField = rendererLabelField; FontInfo textFont; LabelValueRange valueRange; // Create three value ranges, for three different city population sizes valueRange = new LabelValueRange(); valueRange.MinValue = "1"; valueRange.MaxValue = "100000"; textFont = new FontInfo("Arial", 8, Drawing.Color.Blue, FontStyle.Regular); valueRange.Symbol = new TextSymbol(textFont, TextCasing.None, Drawing.Color.Empty); valueRange.SymbolLabel = "1 to 100,000"; valueMapLblRend.Values.Add(valueRange); valueRange = new LabelValueRange(); valueRange.MinValue = "100000"; valueRange.MaxValue = "1000000"; textFont = new FontInfo("Arial", 12, Drawing.Color.Green, FontStyle.Regular); valueRange.Symbol = new TextSymbol(textFont, TextCasing.None, Drawing.Color.Empty); valueRange.SymbolLabel = "100,000 to 1,000,000"; valueMapLblRend.Values.Add(valueRange); valueRange = new LabelValueRange(); valueRange.MinValue = "1000000"; valueRange.MaxValue = "50000000"; textFont = new FontInfo("Arial", 18, Drawing.Color.Red, FontStyle.Regular); valueRange.Symbol = new TextSymbol(textFont, TextCasing.None, Drawing.Color.Empty); valueRange.SymbolLabel = "Over 1,000,000"; valueMapLblRend.Values.Add(valueRange); // Assign the ValueMapLabelRenderer to an existing point layer FeatureLayer layer = mapView.Layers.FindByName("Cities"); layer.Renderer = valueMapLblRend; |
The ValueMapLabelRenderer displays a layer with multiple symbols, rather than with a single symbol for all features (as with SimpleLabelRenderer). Features are rendered based on their value in a field (defined in ValueField). Rendering can occur based on individual, unique values (using UniqueLabelValue), or based on ranges of values (using LabelValueRange).
For each feature to be rendered, the value in the field given by ValueField is compared to the values specified in the Values collection (either value ranges or unique values). If a match is found, the feature is labeled with the text found in the field specified in LabelField, rendered as defined in the LabelValue's Symbol property. If no match is found, the DefaultSymbol is used to render the label, or if no DefaultSymbol is set, the label is not shown.
Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family