<LabelingTypes.h> - Collection of Labeling Enums

Collection of Labeling enumerations. More...

Header: #include <LabelingTypes.h>

Types

enum class LabelAngleRotationType { Automatic, Arithmetic, Geographic }
enum class LabelBarrierWeight { None, Low, Medium, High }
enum class LabelDeconflictionStrategy { Automatic, Dynamic, None, Static, DynamicNeverRemove }
enum class LabelExpressionType { ArcadeLabelExpression, SimpleLabelExpression, WebmapLabelExpression }
enum class LabelGeometryStrategy { Automatic, UseGeometry, UseClippedGeometry }
enum class LabelLineConnection { Automatic, MinimizeLabels, None, UnambiguousLabels }
enum class LabelLineOrientation { Direction, Screen, Unconstrained }
enum class LabelMultipartStrategy { Automatic, LabelLargest, LabelPerFeature, LabelPerPart, LabelPerSegment }
enum class LabelOverlapStrategy { Automatic, Allow, Avoid, Exclude }
enum class LabelOverrunStrategy { Automatic, None, Allow }
enum class LabelRemoveDuplicatesStrategy { Automatic, All, FeatureType, LabelClass, None }
enum class LabelRepeatStrategy { Automatic, None, Repeat }
enum class LabelStackAlignment { Automatic, Dynamic, TextSymbol }
enum class LabelStackBreakPosition { Automatic, After, Before }
enum class LabelStackSeparatorBreakPosition { Automatic, After, Before }
enum class LabelStackStrategy { Automatic, None, Allow }
enum class LabelTextLayout { Automatic, Horizontal, Perpendicular, Straight, FollowFeature }
enum class LabelTextOrientation { Automatic, Direction, Screen }

Detailed Description

Type Documentation

[since Esri::ArcGISRuntime 100.11] enum class LabelAngleRotationType

How the placement angle should be interpreted.

The type of rotation applied to the LabelAngle::angleExpression should be interpreted as LabelAngleRotationType::Arithmetic (counter-clockwise from East) or LabelAngleRotationType::Geographic (clockwise from North).

The LabelAngleRotationType can be one of:

ConstantValueDescription
LabelAngleRotationType::Automatic0The angle uses the default interpretation (LabelAngleRotationType::Arithmetic).
LabelAngleRotationType::Arithmetic1The angle is interpreted as arithmetic, i.e., counterclockwise from East.
LabelAngleRotationType::Geographic2The angle is interpreted as geographic, i.e., clockwise from North.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.14] enum class LabelBarrierWeight

The weight of features when considered as barriers to labeling.

An AnnotationLayer or a DimensionLayer that has no LabelDefinition of its own can be added to a map's operational layers. Their features will be automatically considered by the labeling process, to block labels from being placed such that they overlap the features. This LabelBarrierWeight property controls how much labels must avoid the layer's features.

Note: Other layer types that have their own LabelDefinition can also have their features treated as barriers, but this is controlled by their LabelDefinition::featureBoundaryOverlapStrategy and LabelDefinition::featureInteriorOverlapStrategy properties.

The LabelBarrierWeight can be one of:

ConstantValueDescription
LabelBarrierWeight::None0The feature will not act as an barrier to labels.
LabelBarrierWeight::Low1Labels will avoid overlapping this feature unless there are no other placement positions. In this case, the label will overlap the feature.
LabelBarrierWeight::Medium2Labels will only overlap this feature after first unsuccessfully attempting other placement positions. In this case, the label will overlap the feature.``` This is similar to LabelBarrierWeight::Low, but the labeling process can try additional positions. Not all styles of labeling will have additional positions to try.
LabelBarrierWeight::High3The feature is an exclusion zone for labels. Labels that overlap the feature will not be placed unless the label is using a deconfliction strategy of LabelDeconflictionStrategy::None or LabelDeconflictionStrategy::DynamicNeverRemove.

This enum was introduced or modified in Esri::ArcGISRuntime 100.14.

[since Esri::ArcGISRuntime 100.11] enum class LabelDeconflictionStrategy

The strategy for moving labels to avoid overlapping point symbols or higher priority labels.

The LabelDeconflictionStrategy can be one of:

ConstantValueDescription
LabelDeconflictionStrategy::Automatic0The label will use the default deconfliction strategy (LabelDeconflictionStrategy::Static). This value corresponds to no value being specified for a LabelDefinition::deconflictionStrategy property.
LabelDeconflictionStrategy::Dynamic1Place the label in the preferred location, but move to an alternative location to not overlap higher priority labels or or feature/graphic symbols. This label is placed only if it can be moved to a location that will not overlap a higher priority label.
LabelDeconflictionStrategy::None2Place the label in the preferred location, regardless of overlaps with other features, graphics, or labels.
LabelDeconflictionStrategy::Static3Place the label in the preferred location, unless it would overlap a higher priority label or feature/graphic symbol. If it overlaps a lower priority label, then the lower priority label may disappear or move (depending on its LabelDefinition::deconflictionStrategy). If this label overlaps a higher priority label, then this label is not placed.
LabelDeconflictionStrategy::DynamicNeverRemove4Place the label in the preferred location, but move to an alternative location to minimize overlapping higher priority labels or point feature symbols.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelExpressionType

The type of the label expression.

The type specifies which language interpreter should be used to read and evaluate the expression.

The LabelExpressionType can be one of:

ConstantValueDescription
LabelExpressionType::ArcadeLabelExpression1The LabelExpression property contains a ArcadeLabelExpression object.
LabelExpressionType::SimpleLabelExpression2The LabelExpression property contains a SimpleLabelExpression object.
LabelExpressionType::WebmapLabelExpression3The LabelExpression property contains a WebmapLabelExpression object.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 200.3] enum class LabelGeometryStrategy

The strategy for how to use the geometry of the feature when calculating the label position.

The LabelGeometryStrategy can be one of:

ConstantValueDescription
LabelGeometryStrategy::Automatic0Labeling will use the default LabelGeometryStrategy depending on the feature type. This behavior depends on Feature type:
  • Polygon labels will use LabelGeometryStrategy::UseGeometry
  • Line labels will use LabelGeometryStrategy::UseClippedGeometry
LabelGeometryStrategy::UseGeometry1The feature's entire geometry will be used to calculate the position of the label. This may result in a label not being visible because the preferred location is outside the extent. For example, a line label placed at the start or end of the line might be off-screen if the start or end of the feature geometry are off-screen.
LabelGeometryStrategy::UseClippedGeometry2The subset of the feature's geometry within the screen extent will be used to calculate the position of the label. The label is more likely to be visible on-screen, if there is room. However, the label may move position as the user pans the screen and different parts of the feature geometry are used to calculate the label position.

This enum was introduced or modified in Esri::ArcGISRuntime 200.3.

[since Esri::ArcGISRuntime 100.11] enum class LabelLineConnection

The strategy for whether line features with the same label, and matching end vertices, should be joined before sharing a label.

The LabelLineConnection can be one of:

ConstantValueDescription
LabelLineConnection::Automatic0The default approach for connectable features is to connect them (LabelLineConnection::MinimizeLabels). This value corresponds to no value being specified for a LabelDefinition::lineConnection property.
LabelLineConnection::MinimizeLabels1Line geometries with the same label and coincident end vertices should be considered together as a single, continuous geometry when placing labels. For example, if a single label is being placed on a line feature, then the single location will be chosen along the combined geometries. This combining will ignore junctions, so it may be ambiguous which line feature after a junction is the continuation of the earlier geometry.
LabelLineConnection::None2Keep one label per line feature geometry.
LabelLineConnection::UnambiguousLabels3Line geometries with the same label and coincident end vertices should be joined, until they hit a junction. For example, if a single label is being placed on a line geometry (composed of multiple features' geometries, but all having the same label text), then a label will be placed on both sides of any junction, to make it unambiguous which geometries are the continuation of the initial geometry.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 200.1] enum class LabelLineOrientation

Whether LabelDefinition::placement above or below a line geometry will be interpreted as above or below on the `screen`, or with respect to the `direction` of line's geometry (that is, the digitization order in which the vertices are listed).

The LabelLineOrientation can be one of:

ConstantValueDescription
LabelLineOrientation::Direction0
  • from its line segment.
  • from its line segment.
LabelLineOrientation::Screen1
  • of the screen.
  • of the screen.
LabelLineOrientation::Unconstrained2The label will be offset perpendicularly to whichever side of the line geometry has space (defaulting to `Above`, in the `screen` sense).

This enum was introduced or modified in Esri::ArcGISRuntime 200.1.

[since Esri::ArcGISRuntime 100.11] enum class LabelMultipartStrategy

The strategy for the number of labels to be placed on a multi-part feature.

The LabelMultipartStrategy can be one of:

ConstantValueDescription
LabelMultipartStrategy::Automatic0Labeling will use the default distribution of labels across multi-part features. This depends on Feature type: - Polygon labels will use LabelMultipartStrategy::LabelLargest - Point and Line labels will use LabelMultipartStrategy::LabelPerPart.
LabelMultipartStrategy::LabelLargest1If a feature consists of multiple parts, only the largest one will be assigned a label. If a line feature consists of multiple part geometries, or a polygon feature consists of multiple ring geometries, only the largest one will be assigned a label.
LabelMultipartStrategy::LabelPerFeature2One label per feature, but not supported yet in this API. The intended use is to place one label to represent each feature, even if the feature is made up of multiple parts. For example, a single label is placed at the center of a group of point parts, not necessarily at the position of any individual part. This value can be set when labeling is authored in ArcGIS Pro, but is not supported yet in this API. If used, the placement will be as for LabelMultipartStrategy::LabelPerPart.
LabelMultipartStrategy::LabelPerPart3If a feature consists of multiple geometries, each geometry will be assigned a label. If a line feature consists of multiple line geometries, or a polygon feature consists of multiple ring geometries, each geometry will be assigned a label.
LabelMultipartStrategy::LabelPerSegment4One label per segment, but not supported yet in this API. The intended use is to place a label on each segment of each line geometry. This value can be set when labeling is authored in ArcGIS Pro, but is not supported yet in this API. If used, the placement with be as for LabelMultipartStrategy::LabelPerPart.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelOverlapStrategy

The strategy for whether another label is allowed to be placed over this feature or label

The LabelOverlapStrategy can be one of:

ConstantValueDescription
LabelOverlapStrategy::Automatic0The other label will use the default overlap behavior, which depends on the object being overlapped. This value corresponds to no value being specified for a LabelDefinition overlap property.
LabelOverlapStrategy::Allow1The other label will be allowed to place itself in its preferred location, ignoring this obstacle.
LabelOverlapStrategy::Avoid2The other label will move to minimize overlapping this obstacle, but will overlap if necessary. The other label can only move if its LabelDefinition::deconflictionStrategy allows.
LabelOverlapStrategy::Exclude3The other label will not be placed rather than overlap this obstacle. The other label can only move if its LabelDefinition::deconflictionStrategy allows. If it cannot move, or if there is no free position available, then the other label will not be placed.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelOverrunStrategy

The strategy for whether a label should be visible at viewing scales where the feature is too small for the label to fit.

The LabelOverrunStrategy can be one of:

ConstantValueDescription
LabelOverrunStrategy::Automatic0The label will use the default overrun behavior, which depends on the object being overrun. This value corresponds to no value being specified for the LabelDefinition::overrunStrategy property.
LabelOverrunStrategy::None1The label cannot run past the ends of its line geometry or edges of its polygon geometry.
LabelOverrunStrategy::Allow2The label can run past the ends of its line geometry or edges or its polygon geometry.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelRemoveDuplicatesStrategy

The strategy for whether labels should be removed if they have the same text as other labels, to reduce clutter and free up space.

The LabelRemoveDuplicatesStrategy can be one of:

ConstantValueDescription
LabelRemoveDuplicatesStrategy::Automatic0The default approach to duplicate labels to is keep them (LabelRemoveDuplicatesStrategy::None). This value corresponds to no value being specified for a LabelDefinition::removeDuplicatesStrategy property.
LabelRemoveDuplicatesStrategy::All1Remove nearby duplicate labels. The distance within which to look for duplicates is controlled by LabelDefinition::removeDuplicatesDistance.
LabelRemoveDuplicatesStrategy::FeatureType2Remove nearby duplicate labels, if they belong to the same Feature Type. Two features are considered the same type if they are both point features, both line features or both polygon features. The distance within which to look for duplicates is controlled by LabelDefinition::removeDuplicatesDistance.
LabelRemoveDuplicatesStrategy::LabelClass3Remove nearby duplicate labels, if they below to the same Label Class. Two labels are considered the same Label Class if they are both created from the same LabelDefinition. The distance within which to look for duplicates is controlled by LabelDefinition::removeDuplicatesDistance.
LabelRemoveDuplicatesStrategy::None4No duplicates should be removed. Place all labels on the map, regardless of duplicates.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelRepeatStrategy

The strategy for whether a label should have multiple copies created and placed along or across the same feature.

The LabelRepeatStrategy can be one of:

ConstantValueDescription
LabelRepeatStrategy::Automatic0Labeling will use the default repetition for the feature type. Line feature labels will use LabelRepeatStrategy::Repeat. Polygon feature labels will use LabelRepeatStrategy::None. Point feature labels will use LabelRepeatStrategy::None.
LabelRepeatStrategy::None1Only place one label per feature.
LabelRepeatStrategy::Repeat2Repeat the label along or across the feature. The frequency of repetition is controlled by the LabelDefinition::repeatDistance property.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelStackAlignment

The strategy for how multi-row (stacked) text should be horizontally aligned.

Multi-row text labels can each be horizontally aligned on the left, right or at their center. By using the LabelStackAlignment, the user can choose to use the TextSymbol::horizontalAlignment property for all labels, or can choose to have the most aesthetic alignment calculated case-by-case for each label depending on its placement position around its feature. This is particularly useful for labels of dense point features, where labels may move above, below, left or right of their point symbol, in order to fit on the display.

The LabelStackAlignment can be one of:

ConstantValueDescription
LabelStackAlignment::Automatic0The default behavior is to use LabelStackAlignment::TextSymbol. This value corresponds to no value being specified for a LabelDefinition::stackAlignment property.
LabelStackAlignment::Dynamic1Set the alignment depending upon the label's position with respect to its feature. Have the alignment decided case-by-case for each label depending on its placement position around its feature. This is particularly useful for labels of dense point features, where labels may move above, below, left or right of their point symbol, in order to fit on the display. For example, a stack to the right of a point symbol will be left-aligned.
LabelStackAlignment::TextSymbol2Follow the alignment specified by the TextSymbol::horizontalAlignment.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelStackBreakPosition

The strategy for whether a row of text should be broken before or after it exceeds the ideal length.

If stacking is turned on, label placement can insert a line break before or after the word that overruns the maximum number of characters per row.

The LabelStackBreakPosition can be one of:

ConstantValueDescription
LabelStackBreakPosition::Automatic0Use the default break position (LabelStackBreakPosition::After).
LabelStackBreakPosition::After1Insert the line break after a word that has broken the stackRowLength limit. This means rows will generally be longer than the LabelDefinition::stackRowLength.
LabelStackBreakPosition::Before2Insert the line break before a word that will break the stackRowLength limit. This means rows will generally be shorter than the LabelDefinition::stackRowLength (although they will overrun for individual words larger than this count).

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelStackSeparatorBreakPosition

The position where the separator character in a label will be written, if used.

Determines whether the separator code point should appear at the end of one row, or the beginning of the next. This does not matter if the separator is not to be visible when used.

The LabelStackSeparatorBreakPosition can be one of:

ConstantValueDescription
LabelStackSeparatorBreakPosition::Automatic0Use the default position (LabelStackSeparatorBreakPosition::After).
LabelStackSeparatorBreakPosition::After1Write the separator after the line break, at the start of the next row of text.
LabelStackSeparatorBreakPosition::Before2Write the separator before the line break, at the end of the previous row of text.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelStackStrategy

The strategy for whether the label text should be "stacked" (wrapped), rather than placed as a single line or row of text across the map.

The LabelStackStrategy can be one of:

ConstantValueDescription
LabelStackStrategy::Automatic0Stacking will be enabled for some feature types. The default stacking behavior for labels will depend on their feature type: - Point feature labels may stack - Line feature labels will not stack - Polygon feature labels may stack.
LabelStackStrategy::None1The text should not be broken (wrapped), no matter how long it is.
LabelStackStrategy::Allow2The label placement engine can break the text into two or more row (lines) if the rows are longer than the LabelDefinition::stackRowLength limit.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelTextLayout

The layout to use for label text, which can be either horizontal, straight, perpendicular, or follow the line feature.

The LabelTextLayout can be one of:

ConstantValueDescription
LabelTextLayout::Automatic0The text layout will be determined by the individual feature type. For each label, the layout will be determined by the feature geometry type: - Point feature labels will use LabelTextLayout::Horizontal - Line feature labels will use LabelTextLayout::FollowFeature - Polygon feature labels will use LabelTextLayout::Horizontal.
LabelTextLayout::Horizontal1Text will be written horizontally (with respect to the screen). If the map is rotated within the screen, then the text will be redrawn (and possibly repositioned) to remain horizontal with respect to the screen.
LabelTextLayout::Perpendicular2Text will be written perpendicular to the LabelTextLayout::Straight text layout.
LabelTextLayout::Straight3Text will be written along a straight line, following the point positioning angle or at a tangent to the line feature. An angle for placement and orientation will be calculated for each label if the "labelAngleInfo" json property for the LabelDefinition has been specified.

Centered point labels will stay centered on the point feature, but will be rotated to the angle (or horizontal, if none has been defined).

Offset point labels will be positioned around the point feature, at the position specified by the angle. The text will lie along this angle, so that it stretches radially from the edge of the point feature.

Note that if a label has an angle of zero then its text will be drawn horizontally with respect to the map. If the map is rotated within the screen, the text will rotate with the map.

Line labels will be positioned as usual, but then rotated (around their midpoint) to lie on a straight line at a tangent to the line geometry at that point.

ConstantValueDescription
LabelTextLayout::FollowFeature4Text will bend to follow a curved or multi-segment line feature. Individual characters will be angled to follow the changes in angle of the line geometry. If the text overruns the beginning or end of the line geometry, then the remaining characters will be laid out in a straight line extrapolated from the last geometry segment.

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

[since Esri::ArcGISRuntime 100.11] enum class LabelTextOrientation

The orientation of label text.

The LabelTextOrientation can be one of:

ConstantValueDescription
LabelTextOrientation::Automatic0Use the default text orientation (LabelTextOrientation::Screen).
LabelTextOrientation::Direction1Text follows the placement angle direction, even if it means being drawn upside-down.
LabelTextOrientation::Screen2Text follows the screen orientation, and flips if necessary. Text should be flipped through 180 degrees to keep it readable on the screen. The text will flip whenever the feature determines that the text is angled upside-down, or if the map is rotated within the screen to make the text upside-down (with respect to the screen).

This enum was introduced or modified in Esri::ArcGISRuntime 100.11.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.