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 | LabelLineConnection { Automatic, MinimizeLabels, None, UnambiguousLabels } |
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
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:
Constant | Value | Description |
---|---|---|
LabelAngleRotationType::Automatic | 0 | The angle uses the default interpretation (LabelAngleRotationType::Arithmetic). |
LabelAngleRotationType::Arithmetic | 1 | The angle is interpreted as arithmetic, i.e., counterclockwise from East. |
LabelAngleRotationType::Geographic | 2 | The angle is interpreted as geographic, i.e., clockwise from North. |
This enum was introduced or modified in Esri::ArcGISRuntime 100.11.
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:
Constant | Value | Description |
---|---|---|
LabelBarrierWeight::None | 0 | The feature will not act as an barrier to labels. |
LabelBarrierWeight::Low | 1 | Labels will avoid overlapping this feature unless there are no other placement positions. In this case, the label will overlap the feature. |
LabelBarrierWeight::Medium | 2 | Labels 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::High | 3 | The 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.
enum class LabelDeconflictionStrategy
The strategy for moving labels to avoid overlapping point symbols or higher priority labels.
The LabelDeconflictionStrategy can be one of:
Constant | Value | Description |
---|---|---|
LabelDeconflictionStrategy::Automatic | 0 | The label will use the default deconfliction strategy (LabelDeconflictionStrategy::Static). This value corresponds to no value being specified for a LabelDefinition::deconflictionStrategy property. |
LabelDeconflictionStrategy::Dynamic | 1 | Place 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::None | 2 | Place the label in the preferred location, regardless of overlaps with other features, graphics, or labels. |
LabelDeconflictionStrategy::Static | 3 | Place 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::DynamicNeverRemove | 4 | Place the label in the preferred location, but move to an alternative location to minimize overlapping higher priority labels or feature/graphic symbols. |
This enum was introduced or modified in 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:
Constant | Value | Description |
---|---|---|
LabelExpressionType::ArcadeLabelExpression | 1 | The LabelExpression property contains a ArcadeLabelExpression object. |
LabelExpressionType::SimpleLabelExpression | 2 | The LabelExpression property contains a SimpleLabelExpression object. |
LabelExpressionType::WebmapLabelExpression | 3 | The LabelExpression property contains a WebmapLabelExpression object. |
This enum was introduced or modified in 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:
Constant | Value | Description |
---|---|---|
LabelLineConnection::Automatic | 0 | The 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::MinimizeLabels | 1 | Line 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::None | 2 | Keep one label per line feature geometry. |
LabelLineConnection::UnambiguousLabels | 3 | Line 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.
enum class LabelMultipartStrategy
The strategy for the number of labels to be placed on a multi-part feature.
The LabelMultipartStrategy can be one of:
Constant | Value | Description |
---|---|---|
LabelMultipartStrategy::Automatic | 0 | Labeling 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::LabelLargest | 1 | If 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::LabelPerFeature | 2 | One label per feature, but not supported yet in runtime. The intended use is to place one label to represent each feature, even if the feature is made up of multiple parts, e.g. placing a single label at the center of a group of point parts, not necessarily at the position of any individual part. |
LabelMultipartStrategy::LabelPerPart | 3 | If 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::LabelPerSegment | 4 | One label per segment, but not supported yet in runtime. The intended use is to place a label on each segment of each line geometry. |
This enum was introduced or modified in 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:
Constant | Value | Description |
---|---|---|
LabelOverlapStrategy::Automatic | 0 | The 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::Allow | 1 | The other label will be allowed to place itself in its preferred location, ignoring this obstacle. |
LabelOverlapStrategy::Avoid | 2 | The 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::Exclude | 3 | The 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.
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:
Constant | Value | Description |
---|---|---|
LabelOverrunStrategy::Automatic | 0 | The 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::None | 1 | The label cannot run past the ends of its line geometry or edges of its polygon geometry. |
LabelOverrunStrategy::Allow | 2 | The 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.
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:
Constant | Value | Description |
---|---|---|
LabelRemoveDuplicatesStrategy::Automatic | 0 | The 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::All | 1 | Remove nearby duplicate labels. The distance within which to look for duplicates is controlled by LabelDefinition::removeDuplicatesDistance. |
LabelRemoveDuplicatesStrategy::FeatureType | 2 | Remove 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::LabelClass | 3 | Remove 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::None | 4 | No duplicates should be removed. Place all labels on the map, regardless of duplicates. |
This enum was introduced or modified in 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:
Constant | Value | Description |
---|---|---|
LabelRepeatStrategy::Automatic | 0 | Labeling 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::None | 1 | Only place one label per feature. |
LabelRepeatStrategy::Repeat | 2 | Repeat 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.
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:
Constant | Value | Description |
---|---|---|
LabelStackAlignment::Automatic | 0 | The default behavior is to use LabelStackAlignment::TextSymbol. This value corresponds to no value being specified for a LabelDefinition::stackAlignment property. |
LabelStackAlignment::Dynamic | 1 | Set 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::TextSymbol | 2 | Follow the alignment specified by the TextSymbol::horizontalAlignment. |
This enum was introduced or modified in 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:
Constant | Value | Description |
---|---|---|
LabelStackBreakPosition::Automatic | 0 | Use the default break position (LabelStackBreakPosition::After). |
LabelStackBreakPosition::After | 1 | Insert the line break after a word that has broken the stackRowLength limit. This means rows will generally be longer than the LabelDefinition::stackRowLength. |
LabelStackBreakPosition::Before | 2 | Insert 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.
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:
Constant | Value | Description |
---|---|---|
LabelStackSeparatorBreakPosition::Automatic | 0 | Use the default position (LabelStackSeparatorBreakPosition::After). |
LabelStackSeparatorBreakPosition::After | 1 | Write the separator after the line break, at the start of the next row of text. |
LabelStackSeparatorBreakPosition::Before | 2 | Write 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.
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:
Constant | Value | Description |
---|---|---|
LabelStackStrategy::Automatic | 0 | Stacking 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::None | 1 | The text should not be broken (wrapped), no matter how long it is. |
LabelStackStrategy::Allow | 2 | The 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.
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:
Constant | Value | Description |
---|---|---|
LabelTextLayout::Automatic | 0 | The 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::Horizontal | 1 | Text 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::Perpendicular | 2 | Text will be written perpendicular to the LabelTextLayout::Straight text layout. |
LabelTextLayout::Straight | 3 | Text 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.
Constant | Value | Description |
---|---|---|
LabelTextLayout::FollowFeature | 4 | Text 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.
enum class LabelTextOrientation
The orientation of label text.
The LabelTextOrientation can be one of:
Constant | Value | Description |
---|---|---|
LabelTextOrientation::Automatic | 0 | Use the default text orientation (LabelTextOrientation::Screen). |
LabelTextOrientation::Direction | 1 | Text follows the placement angle direction, even if it means being drawn upside-down. |
LabelTextOrientation::Screen | 2 | Text 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.