Labeling properties manual

This manual describes the available properties for controlling labeling in your ArcGIS Maps SDKs for Native Apps application. For the purposes of labeling, graphics generated by ArcGIS Maps SDKs for Native Apps are treated as if they are features. References to features within this document can be assumed to refer to both features and graphics.

1.0 Label Properties

A list of all supported ArcGIS Maps SDKs for Native Apps labeling properties, their values and ArcGIS Pro export interpretations.

1.1.0 angle

The angular positions and layout directions for labels on or around point feature symbols.

This optional object specifies how to position a label following the direction of an angle. The angular position may be different for each feature (driven by one or more feature attributes) or constant for all features (specified by a fixed number).

The LabelDefinition.placement will still be used to indicate whether offset or centered positioning is required, but the exact position will be overridden by the angle calculated for the feature. Once the position has been determined, LabelDefinition.textLayout and LabelDefinition.textOrientation are used to specify the layout of the text at that position.

1.1.1 Overview

Data TypeDefault ValueJSON Example
LabelAnglenull "labelAngleInfo": { "angleExpressionInfo": {"expression": "iif($feature.type IS 11, $feature.SITE_ANGLE, 90-2*$feature["other angle"])","returnType": "number"},"rotationType": "arithmetic"}

1.1.2 Property values

ValuesSummary
angleExpressionSpecifies how the angle (in degrees) is calculated from the feature attributes,using an Arcade expression.
rotationTypeWhether the angle should be interpreted as arithmetic or geographic.

1.1.3 Other property relationships


1.1.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property angle.

Rotation (point features)
  • label class properties -> position options -> placement
  • label class properties -> position options -> position properties -> rotation -> rotation field -> expression builder
  • label class properties -> position options -> position properties -> rotation -> rotation field
  • label class properties -> position options -> position properties -> rotation -> additional rotation
  • label class properties -> position options -> position properties -> rotation -> rotation type
Rotationangle
rotation expressionangle.angleExpression
rotation field AND additional rotationangle.angleExpression
rotation typeangle.rotationType

1.1.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property angle.

Rotation (point features)
  • label class properties -> position options -> position properties -> angles
Rotationangle
place label at specified angles AND angle count MORE THAN 0 angle.angleExpression
place label at an angle specified by a fieldangle.angleExpression

1.2.0 deconflictionStrategy

The strategy for moving labels to avoid overlapping feature, annotation, dimension or graphic symbols or higher priority labels. In 3D LabelDeconflictionStrategy.static is selected by default.

The default is LabelDeconflictionStrategy.automatic (which will be interpreted as LabelDeconflictionStrategy.static i.e. use preferred location unless it would overlap an obstacle).

1.2.1 Overview

Data TypeDefault ValueJSON Example
LabelDeconflictionStrategystatic"deconflictionStrategy":"dynamic"

1.2.2 Property values

ValuesSummary
automaticThe label will use the default deconfliction strategy (LabelDeconflictionStrategy.static).
dynamicPlace the label in the preferred location, but move to an alternative location to not overlap higher priority labels or feature/graphic symbols.
nonePlace the label in the preferred location, regardless of overlaps with other features, graphics or labels.
staticPlace the label in the preferred location, unless it would overlap a higher priority label or feature/graphic symbol.
dynamicNeverRemovePlace the label in the preferred location, but move to an alternative location to minimize overlapping higher priority labels or feature/graphic symbols.

1.2.3 Other property relationships


1.2.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property deconflictionStrategy.

Position options (point features)
  • label class properties -> position options -> placement properties -> position
  • label class properties -> position options -> zones
  • label class properties -> position options -> conflict resolution properties -> unplaced labels -> never remove
Position optionsdeconflictionStrategy
position IS offset label around the point AND zone count MORE THAN 1 AND never remove IS truedynamicNeverRemove
position IS offset label around the point AND zone count MORE THAN 1 AND never remove IS falsedynamic
(position IS centered label OR (position IS offset label around the point AND zone count EQUALS 1)) AND never remove IS truenone
(position IS centered label OR (position IS offset label around the point AND zone count EQUALS 1)) AND never remove IS falsestatic

Position options (line features)
  • label class properties -> position options -> placement properties -> offset along line
  • label class properties -> position options -> conflict resolution properties -> unplaced labels -> never remove
Position optionsdeconflictionStrategy
offset along line IS best position AND never remove IS truedynamicNeverRemove
offset along line IS best position AND never remove IS falsedynamic
offset along line IS before/after start/finish position AND never remove IS truenone
offset along line IS before/after start/finish position AND never remove IS falsestatic

Position options (polygon features)
  • label class properties -> position options -> placement properties -> place label at fixed position within polygon
  • label class properties -> position options -> conflict resolution properties -> unplaced labels -> never remove
Position optionsdeconflictionStrategy
place label at fixed position IS true AND never remove IS truenone
place label at fixed position IS true AND never remove IS falsestatic
place label at fixed position IS false AND never remove IS truedynamicNeverRemove
place label at fixed position IS false AND never remove IS falsedynamic

1.2.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property deconflictionStrategy.

Position options (point features)
  • label class properties -> position options -> priority
  • label class properties -> position options -> place overlapping labels
Position optionsdeconflictionStrategy
priority zone count MORE THAN 1 AND place overlapping labels IS truedynamicNeverRemove
priority zone count MORE THAN 1 AND place overlapping labels IS falsedynamic
zones or angles count EQUAL TO 1 AND place overlapping labels IS truenone
zones or angles count EQUAL TO 1 AND place overlapping labels IS falsestatic

Position options (line features)
  • label class properties -> position options
  • label class properties -> position options -> location along the line
  • label class properties -> position options -> place overlapping labels
Position optionsdeconflictionStrategy
position IS horizontal AND place overlapping labels IS truedynamicNeverRemove
position IS horizontal AND place overlapping labels IS falsedynamic
position IS parallel AND location along the line IS at best AND place overlapping labels IS truedynamicNeverRemove
position IS parallel AND location along the line IS at best AND place overlapping labels IS falsedynamic
position IS parallel AND location along the line IS NOT at best AND place overlapping labels IS truenone
position IS parallel AND location along the line IS NOT at best AND place overlapping labels IS falsestatic
position IS curved AND place overlapping labels IS truedynamicNeverRemove
position IS curved AND place overlapping labels IS falsedynamic
position IS perpendicular AND location along the line IS at best AND place overlapping labels IS truedynamicNeverRemove
position IS perpendicular AND location along the line IS at best AND place overlapping labels IS falsedynamic
position IS perpendicular AND location along the line IS NOT at best AND place overlapping labels IS truenone
position IS perpendicular AND location along the line IS NOT at best AND place overlapping labels IS falsestatic

Position options (polygon features)
  • label class properties -> position options -> place overlapping labels
Position optionsdeconflictionStrategy
place overlapping labels IS truenone
place overlapping labels IS falsestatic

1.3.0 expression

The expression script used to calculate the label text.

The expression may be a combination of literal text and attribute values from the feature being labeled. The syntax of the expression is determined by which label expression object is used: ArcadeLabelExpression, SimpleLabelExpression or WebmapLabelExpression.

A label expression using one scripting language can be replaced by an expression using a different scripting language just by creating an object of the new LabelExpression subclass and assigning it to LabelDefinition.expression.

The default value is an empty ArcadeLabelExpression, which will evaluate to an empty text label.

The expression needs to create a text string which will be used as the label text. The text string can be any legal UTF16 characters.

The text string can also include HTML-style formatting tags e.g.

"Hello <BOL>World</BOL>"

where the angle-bracketed tags will not appear in the label, but may change the presentation of the text. In the example, the "World" will appear in bold.

The available tags are:

  • "<BOL></BOL>" for bold text
  • "<UND></UND>" for underlined text
  • "<ITA></ITA>" for italic text
  • "<CLR red='256'></CLR>" for colored text
  • "<FNT name='Arial' size='18'></FNT>" for text using a different size or font (if available on client).

Tags can be upper or lower case, but not a mixture. Tags can be nested e.g. "<ITA>Hello <BOL>World</BOL></ITA>".

Full documentation of the tag parameters is available in the document Text formatting tags.

1.3.1 Overview

Data TypeDefault ValueJSON Example
LabelExpression "labelExpressionInfo":{"expression":"round($feature.length,2) + "m^2""}

1.3.2 Property values

ValuesSummary
expressionThe label expression script string.
objectTypeThe type of the label expression.

1.3.3 Other property relationships

None


1.3.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property expression.

expression (all features)
  • label properties -> class options -> expression
  • label properties -> class options -> language
expressionexpression
expression AND language IS arcadeexpression.arcadeExpression
expression IS single field AND language NOT arcadeexpression.simpleExpression

1.3.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property expression.

expression (all features)
  • label properties -> label expression
  • label properties -> label expression -> language
expressionexpression
expression AND language IS arcadeexpression.arcadeExpression
expression IS single field AND language NOT arcadeexpression.simpleExpression

1.4.0 featureBoundaryOverlapStrategy

The strategy for whether other labels are allowed to overlap the boundary of polygon features/graphics being labeled by this LabelDefinition. In 3D scenes, labels will be allowed to overlap the boundaries of polygon features.

The default is LabelOverlapStrategy.automatic, which will give the same behavior as LabelOverlapStrategy.allow.

1.4.1 Overview

Data TypeDefault ValueJSON Example
LabelOverlapStrategyallow"allowOverlapOfFeatureBoundary":"avoid"

1.4.2 Property values

ValuesSummary
automaticThe other label will use the default overlap behavior which depends on the object being overlapped.
allowThe other label will be allowed to place itself in its preferred location, ignoring this obstacle.
avoidThe other label will move to minimize overlapping this obstacle, but will overlap if necessary.
excludeThe other label will not be placed rather than overlap this obstacle.

1.4.3 Other property relationships


1.4.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property featureBoundaryOverlapStrategy.

Boundary weight (polygon features)
  • label weight ranking -> feature layers
Boundary weightfeatureBoundaryOverlapStrategy
polygon boundary weight IS 0allow
polygon boundary weight IS 1..999avoid
polygon boundary weight IS 1000exclude

1.4.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property featureBoundaryOverlapStrategy.

None, not supported for featureBoundaryOverlapStrategy

1.5.0 featureInteriorOverlapStrategy

The strategy for whether other labels are allowed to overlap the interior of polygon features/graphics being labeled by this LabelDefinition. In 3D scenes, labels will be allowed to overlap the interiors of polygon features.

The default is LabelOverlapStrategy.automatic which will give the same behavior as LabelOverlapStrategy.allow.

1.5.1 Overview

Data TypeDefault ValueJSON Example
LabelOverlapStrategyallow"allowOverlapOfFeatureInterior":"exclude"

1.5.2 Property values

ValuesSummary
automaticThe other label will use the default overlap behavior which depends on the object being overlapped.
allowThe other label will be allowed to place itself in its preferred location, ignoring this obstacle.
avoidThe other label will move to minimize overlapping this obstacle, but will overlap if necessary.
excludeThe other label will not be placed rather than overlap this obstacle.

1.5.3 Other property relationships


1.5.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property featureInteriorOverlapStrategy.

Feature weight (all features)
  • label weight ranking -> feature layers
Feature weightfeatureInteriorOverlapStrategy
feature weight IS 0allow
feature weight IS 1..999avoid
feature weight IS 1000exclude

1.5.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property featureInteriorOverlapStrategy.

Feature weight (all features)
  • label class properties -> position options -> conflict resolution properties -> feature weight
Feature weightfeatureInteriorOverlapStrategy
feature weight IS noneallow
feature weight IS lowallow
feature weight IS mediumavoid
feature weight IS highexclude

1.6.0 labelOverlapStrategy

The strategy for whether other labels are allowed to overlap labels created by this LabelDefinition. In 3D, labels will not be allowed to overlap other labels. Overlapping labels will not be displayed until the user zooms in further so that the labels don't overlap.

The default is LabelOverlapStrategy.automatic which will give the same behavior as LabelOverlapStrategy.exclude.

1.6.1 Overview

Data TypeDefault ValueJSON Example
LabelOverlapStrategyexclude"allowOverlapOfLabel":"avoid"

1.6.2 Property values

ValuesSummary
automaticThe other label will use the default overlap behavior which depends on the object being overlapped.
allowThe other label will be allowed to place itself in its preferred location, ignoring this obstacle.
avoidThe other label will move to minimize overlapping this obstacle, but will overlap if necessary.
excludeThe other label will not be placed rather than overlap this obstacle.

1.6.3 Other property relationships

None


1.6.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property labelOverlapStrategy.

Background label (all features)
  • label class properties -> position options -> conflict resolution properties -> background labels
Background labellabelOverlapStrategy
background label IS trueallow
background label IS falseexclude

1.6.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property labelOverlapStrategy.

Label weight (all features)
  • label class properties -> position -> conflict resolution -> label weight
Label weightlabelOverlapStrategy
label weight IS lowallow
label medium IS mediumavoid
label high IS highexclude

1.7.0 lineConnection

The strategy for whether line features with the same label, and matching end vertices, should be joined before sharing a label. 3D line features will be treated as independent features with their own label.

The default is LabelLineConnection.automatic, which will be interpreted as LabelLineConnection.minimizeLabels.

1.7.1 Overview

Data TypeDefault ValueJSON Example
LabelLineConnectionminimizeLabels"lineConnection": "minimizeLabels"

1.7.2 Property values

ValuesSummary
automaticThe default approach for connectable features is to connect them (LabelLineConnection.minimizeLabels)
minimizeLabelsLine geometries with the same label and coincident end vertices should be considered together as a single, continuous geometry when placing labels.
noneKeep one label per line feature geometry.
unambiguousLabelsLine geometries with the same label and coincident end vertices should be joined, until they hit a junction.

1.7.3 Other property relationships

None


1.7.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property lineConnection.

Connect features (all features)
  • label class properties -> position options -> conflict resolution properties -> line connection
Connect featureslineConnection
connect features IS falsenone
connect features IS true AND line connection IS minimize labelsminimizeLabels
connect features IS true AND line connection IS unambiguousunambiguousLabels

1.7.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property lineConnection.

Line connection (all features)
  • default
Line connectionlineConnection
defaultnone

1.8.0 maxScale

The maximum scale at which labels will be visible. In 3D scenes,the scale range is between individual label and view plane instead of map and view plane.

Labels will only be visible when the viewing scale is smaller than (or equal to) the maxScale.

For example, if the viewing scale is 1:12000 and the LabelDefinition.maxScale is 1:10000, then the labels will be visible (because 1/12000 < 1/10000). A LabelDefinition.maxScale of 0, which is the default, indicates no upper limit on the viewing scale.

1.8.1 Overview

Data TypeDefault ValueJSON Example
double0"maxScale": 10000

1.8.2 Property values

ValuesSummary
0Always visible at all scales
GREATER THAN 0Show label when viewing scale is less than or equal to maxScale

1.8.3 Other property relationships

None


1.8.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property maxScale.

visibility range (all features)
  • label class properties -> class -> visibility range -> in beyond
visibility rangemaxScale
in beyond valuemaxScale value

1.8.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property maxScale.

visibility range (all features)
  • label class properties -> class -> visibility range -> in beyond
visibility rangemaxScale
in beyond valuemaxScale value

1.9.0 minScale

The minimum scale at which labels will be visible. In 3D scenes, the scale range is between individual label and view plane instead of map and view plane.

Labels will only be visible when the viewing scale is larger than (or equal to) the minScale.

For example, if the viewing scale is 1:12000 and the LabelDefinition.minScale is 1:20000, then the labels will be visible (because 1/12000 > 1/20000). A LabelDefinition.minScale of 0, which is the default, indicates no lower limit on the viewing scale.

1.9.1 Overview

Data TypeDefault ValueJSON Example
double0"minScale": 1250000

1.9.2 Property values

ValuesSummary
0Always visible at all scales
GREATER THAN 0Show label when viewing scale is greater than or equal to minScale

1.9.3 Other property relationships

None


1.9.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property minScale.

visibility range (all features)
  • label class properties -> class -> visibility range -> out beyond
visibility rangeminScale
out beyond valueminScale value

1.9.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property minScale.

visibility range (all features)
  • label class properties -> class -> visibility range -> out beyond
visibility rangeminScale
out beyond valueminScale value

1.10.0 multipartStrategy

The strategy for how many labels should be placed on each polyline or polygon (multi-ring) feature.

The default is LabelMultipartStrategy.automatic.

1.10.1 Overview

Data TypeDefault ValueJSON Example
LabelMultipartStrategylabelPerPart"multiPart": "labelPerPart"

1.10.2 Property values

ValuesSummary
automaticLabeling will use the default distribution of labels across multi-part features.
labelLargestIf a feature consists of multiple parts, only the largest one will be assigned a label.
labelPerFeatureOne label per feature, but not supported yet in runtime.
labelPerPartIf a feature consists of multiple geometries, each geometry will be assigned a label.
labelPerSegmentOne label per segment, but not supported yet in runtime.

1.10.3 Other property relationships

None


1.10.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property multipartStrategy.

Label largest (polygon features)
  • label class properties -> position options -> conflict resolution properties -> label largest part
Label largestmultipartStrategy
label largest feature part IS truelabelLargest
label largest feature part IS falselabelPerPart

1.10.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property multipartStrategy.

Duplicate labels (polygon features)
  • label class properties -> position options -> position properties -> duplicate labels
Duplicate labelsmultipartStrategy
remove all duplicateslabelLargest
one label per featurelabelLargest
one label per partlabelPerPart

1.11.0 name

Text name for the class of labels.

This name is assigned by the map author to clarify the purpose of this label definition. It is used for display or debugging purposes. If no name is explicitly assigned, then an empty text string is stored.

1.11.1 Overview

Data TypeDefault ValueJSON Example
String "name": "Perimeter length"

1.11.2 Property values

ValuesSummary
no name
industrial buildingstypical name
buildings-commercial-retailmore specific name

1.11.3 Other property relationships

None


1.11.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property name.

Label class name (all features)
  • label class properties -> general -> name
Label class namename
namename

1.11.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property name.

Label class name (all features)
  • label class properties -> general -> name
Label class namename
namename

1.12.0 offsetDistance

The distance (in points i.e. 1/72 inches) that text should be moved away from its features.

The distance is measured from the point symbol radius or line feature symbology edge. The distance is measured on the screen (i.e. not in the map) in points, comparable to the text font size.

This can be a negative value, to pull the label closer to the feature if, for example, the average size for a point symbol is overly conservative for the actual graphic shown.

If no value is set, then 1 point is assumed.

1.12.1 Overview

Data TypeDefault ValueJSON Example
double1"offsetDistance": 5

1.12.2 Property values

ValuesSummary
numbersigned numeric value

1.12.3 Other property relationships

None


1.12.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property offsetDistance.

Preferred offset (all features)
  • label class properties -> position option -> placement properties -> placement
Preferred offsetoffsetDistance
preferred offsetoffsetDistance

1.12.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property offsetDistance.

None, not supported for offsetDistance

1.13.0 overrunStrategy

The strategy for whether a label will be visible at scales where the feature is too small for the label to fit. Not supported by 3D scenes.

The default is LabelOverrunStrategy.automatic which will give different behavior depending on the type of feature that the label might overrun.

1.13.1 Overview

Data TypeDefault ValueJSON Example
LabelOverrunStrategyautomatic"allowOverrun": false

1.13.2 Property values

ValuesSummary
automaticThe 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.
noneThe label cannot run past the ends of its line geometry or edges of its polygon geometry.
allowThe label can run past the ends of its line geometry or edges or its polygon geometry.

1.13.3 Other property relationships

None


1.13.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property overrunStrategy.

overrun (line features)
  • label class properties -> position properties -> placement options -> placement properties -> offset along line
  • label class properties -> position properties -> conflicting resolution properties -> overrun -> maximum
  • label class properties -> position options -> conflict resolution properties -> unplaced labels -> never remove
overrunoverrunStrategy
offset along line IS best position AND maximum IS MORE THAN 0allow
offset along line IS best position AND never remove IS trueallow
offset along line IS best position AND never remove IS false AND maximum IS 0none

overrun (polygon features)
  • label class properties -> position options -> position properties -> overrun -> maximum
overrunoverrunStrategy
maximum IS EQUAL TO 0allow
maximum IS LESS THAN 0none

1.13.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property overrunStrategy.

overlap (line features)
  • label class properties -> position options -> position properties -> location along the line
  • label class properties -> conflict resolution properties -> place overlapping labels
overlapoverrunStrategy
location along the line IS at best AND place overlapping labels IS trueallow
location along the line IS at best AND place overlapping labels IS falsenone

only place label inside polygon (polygon features)
  • label class properties -> position options -> only place label inside polygon
only place label inside polygonoverrunStrategy
truenone
falseallow

1.14.0 placement

The preferred position of the text label, with respect to its feature geometry.

The default is LabelingPlacement.automatic. The effect of this is the same as one of the following, depending on the type of feature geometry:

  • LabelingPlacement.pointAboveRight for point features
  • LabelingPlacement.polygonAlwaysHorizontal for polygon features
  • LabelingPlacement.lineAboveAlong for line features

1.14.1 Overview

Data TypeDefault ValueJSON Example
LabelingPlacementautomatic"labelPlacement": "esriServerPolygonPlacementAlwaysHorizontal"

1.14.2 Property values

ValuesSummary
automaticDefault position for the label, dependent on the type of feature being labeled.
unknownPreferred placement position has not been specified.
lineAboveAfterLower-left corner of label is at final geometry coord; label extrapolates the last geometry segment.
lineAboveAlongLower midpoint of label prefers the midpoint of the geometry; label follows the geometry segments.
lineAboveBeforeLower right corner of label is at first geometry coord; label extrapolates the first geometry segment.
lineAboveEndLower right corner of label is at final geometry coord; label follows the last geometry segments.
lineAboveStartLower left corner of label is at first geometry coord, label follows the first geometry segments.
lineBelowAfterUpper left corner of label is at final geometry coord, label extrapolates the last geometry segment.
lineBelowAlongUpper midpoint of label prefers the midpoint of the geometry, label follows the geometry segments.
lineBelowBeforeUpper right corner of label is at first geometry coord, label extrapolates the first geometry segment.
lineBelowEndUpper right corner of label is at final geometry coord, label follows the last geometry segments.
lineBelowStartUpper left corner of label is at first geometry coord, label follows the first geometry segments.
lineCenterAfterLeft midpoint of label is at final geometry coord, label extrapolates the last geometry segment.
lineCenterAlongCenter of label prefers the midpoint of the geometry, label follows the geometry segments.
lineCenterBeforeRight midpoint of label is at first geometry coord, label extrapolates the first geometry segment.
lineCenterEndRight midpoint of label is at final geometry coord, label follows the last geometry segments.
lineCenterStartLeft midpoint of label is at first geometry coord, label follows the first geometry segments.
pointAboveCenterLower midpoint of label is offset north of point symbol.
pointAboveLeftLower-right corner of the label is offset northwest of point symbol.
pointAboveRightLower left corner of the label is offset North-east of point symbol.
pointBelowCenterUpper midpoint of label is offset South of point symbol.
pointBelowLeftUpper right corner of the label is offset South-west of point symbol.
pointBelowRightUpper left corner of the label is offset South-east of point symbol.
pointCenterCenterCenter of label is placed on geometry point.
pointCenterLeftRight midpoint of label is offset West of point symbol.
pointCenterRightLeft midpoint of label is offset East of point symbol.
polygonAlwaysHorizontalCenter of label is as far inside polygon as possible.

1.14.3 Other property relationships


1.14.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property placement.

Label placement (point features)
  • label class properties -> position options -> placement properties -> placement
  • label class properties -> position options -> placement properties -> zones
Label placementplacement
placement IS best position AND north zone IS highest prioritypointAboveCenter
placement IS best position AND north east zone IS highest prioritypointAboveRight
placement IS best position AND east zone IS highest prioritypointCenterRight
placement IS best position AND south east zone IS highest prioritypointBelowRight
placement IS best position AND south zone IS highest prioritypointBelowCenter
placement IS best position AND south west zone IS highest prioritypointBelowLeft
placement IS best position AND west zone IS highest prioritypointCenterLeft
placement IS best position AND north west zone IS highest prioritypointAboveLeft
placement IS centered on pointpointCenterCenter
placement IS top of pointpointAboveCenter
placement IS top right of pointpointAboveRight
placement IS right of pointpointCenterRight
placement IS bottom right of pointpointBelowRight
placement IS bottom of pointpointBelowCenter
placement IS bottom left of pointpointCenterLeft
placement IS left of pointpointAboveLeft
placement IS top left of pointpointAboveLeft

Label placement (line features)
  • label class properties -> position options -> placement properties -> placement
  • label class properties -> position options -> placement properties -> constrain offset
  • label class properties -> position options -> placement properties -> offset along line
Label placementplacement
placement IS offset AND constrain offset IS above line AND offset along line IS best positionaboveAlong
placement IS offset AND constrain offset IS left of line AND offset along line IS best positionaboveAlong
placement IS offset AND constrain offset IS below line AND offset along line IS best positionbelowAlong
placement IS offset AND constrain offset IS right of line AND offset along line IS best positionbelowAlong
placement IS offset AND constrain offset IS above line AND offset along line IS before start of lineaboveBefore
placement IS offset AND constrain offset IS above line AND offset along line IS along line from startaboveStart
placement IS offset AND constrain offset IS above line AND offset along line IS best positionaboveAlong
placement IS offset AND constrain offset IS above line AND offset along line IS along line from endaboveEnd
placement IS offset AND constrain offset IS above line AND offset along line IS after end of lineaboveAfter
placement IS center AND offset along line IS before start of linecenterBefore
placement IS center AND offset along line IS along line from startcenterStart
placement IS center AND offset along line IS best positioncenterAlong
placement IS center AND offset along line IS along line from endcenterEnd
placement IS center AND offset along line IS after end of linecenterAfter
placement IS offset AND constrain offset IS below line AND offset along line IS before start of linebelowBefore
placement IS offset AND constrain offset IS below line AND offset along line IS along line from startbelowStart
placement IS offset AND constrain offset IS below line AND offset along line IS best positionbelowAlong
placement IS offset AND constrain offset IS below line AND offset along line IS along line from endbelowEnd
placement IS offset AND constrain offset IS below line AND offset along line IS after end of linebelowAfter

Label placement (polygon features)
  • default
Label placementplacement
defaultpolygonCenterHorizontal

1.14.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property placement.

Label placement (point features)
  • label class properties -> position options -> position properties -> priority
  • label class properties -> position options -> position properties -> place label on top of point
  • label class properties -> position options -> position properties -> offset label horizontally around the point
Label placementplacement
place label on top of point IS truepointCenterCenter
place label at specified anglespointAboveRight
place label at an angle specified by a fieldpointAboveRight
offset label horizontally around the point AND north zone is highest prioritypointAboveCenter
offset label horizontally around the point AND north east zone is highest prioritypointAboveRight
offset label horizontally around the point AND east zone is highest prioritypointCenterRight
offset label horizontally around the point AND south east zone is highest prioritypointBelowRight
offset label horizontally around the point AND south zone is highest prioritypointBelowCenter
offset label horizontally around the point AND south west zone is highest prioritypointBelowLeft
offset label horizontally around the point AND west zone is highest prioritypointCenterLeft
offset label horizontally around the point AND north west zone is highest prioritypointAboveLeft

Label placement (line features)
  • label class properties -> position options -> align to
  • label class properties -> position options -> on the line
  • label class properties -> position options -> left of the line
  • label class properties -> position options -> right of the line
  • label class properties -> position options -> location along the line
Label placementplacement
align to IS line AND left of the line IS true AND location along line IS at startlineAboveStart
align to IS line AND left of the line IS true AND location along line IS at bestlineAboveAlong
align to IS line AND left of the line IS true AND location along line IS at endlineAboveEnd
align to IS line AND on the line IS true AND location along line IS at startlineCenterStart
align to IS line AND on the line IS true AND location along line IS at bestlineCenterAlong
align to IS line AND on the line IS true AND location along line IS at endlineCenterEnd
align to IS line AND right of line IS true AND location along line IS at startlineBelowStart
align to IS line AND right of line IS true AND location along line IS at bestlineBelowAlong
align to IS line AND right of line IS true AND location along line IS at endlineBelowEnd
align to IS page AND above the line IS true AND location along line IS at startlineAboveStart
align to IS page AND above the line IS true AND location along line IS at bestlineAboveAlong
align to IS page AND above the line IS true AND location along line IS at endlineAboveEnd
align to IS page AND on the line IS true AND location along line IS at startlineCenterStart
align to IS page AND on the line IS true AND location along line IS at bestlineCenterAlong
align to IS page AND on the line IS true AND location along line IS at endlineCenterEnd
align to IS page AND below the line IS true AND location along line IS at startlineBelowStart
align to IS page AND below the line IS true AND location along line IS at bestlineBelowAlong
align to IS page AND below the line IS true AND location along line IS at endlineBelowEnd

default (polygon features)
  • default
defaultplacement
defaultpolygonCenterHorizontal

1.15.0 priority

Defines which labels are placed first, and can also supplant existing lower-priority labels (e.g. during panning).

Lower values indicate more important labels i.e.:

  • 0 is the most important
  • 5 is high priority
  • 15 is medium priority
  • Higher values indicate lower priority

If set to -1 or not set at all, then default values are used, depending on the geometry types of the features:

  • 12 for point features
  • 15 for line features
  • 18 for polygon features

This value does not have to be an integer because it is just a continuum of values for comparison. Users can use this to specify that a class of labels should have priority between two other classes with close priorities.

For example, PreferredRoutes might be given priority 13 to appear ahead of general line feature labels, but after general point feature labels. And HistoricSites might be given priority 12.5 to appear ahead of PreferredRoute labels, but still after general point feature labels.

1.15.1 Overview

Data TypeDefault ValueJSON Example
double-1"priority": 30

1.15.2 Property values

ValuesSummary
-1automatically calculate based on feature geometry type
0most important
12default priority for point features
15default priority for line
18default priority for polygon features

1.15.3 Other property relationships


1.15.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property priority.

Priority ranking (all features)
  • labeling ribbon -> more -> priorities
Priority rankingpriority
label class priority orderpriority

1.15.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property priority.

Priority ranking (all features)
  • labeling ribbon -> more -> priorities
Priority rankingpriority
label class priority orderpriority

1.16.0 removeDuplicatesDistance

A value that controls the duplicate thinning radius (in points i.e. 1/72 inches).

The distance is measured on the screen (i.e. not in the map) in points, comparable to the text font size. This value is only used if LabelDefinition.removeDuplicatesStrategy is enabled. The default value is 0. This indicates that duplicates should be removed from the entire extent.

1.16.1 Overview

Data TypeDefault ValueJSON Example
double0"removeDuplicatesDistance": 300

1.16.2 Property values

ValuesSummary
0all duplicates should be removed from the entire extent
GREATER THAN 0remove duplicate distance

1.16.3 Other property relationships

None


1.16.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property removeDuplicatesDistance.

Search Radius (all features)
  • label class properties -> position options -> conflict resolution properties -> remove duplicate labels -> search radius
Search RadiusremoveDuplicatesDistance
remove within fixed distance IS true AND search radius valueremove duplicate distance value converted to points
remove all IS true0

1.16.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property removeDuplicatesDistance.

Default (all features)
  • default
DefaultremoveDuplicatesDistance
default0

1.17.0 removeDuplicatesStrategy

The strategy for whether labels are removed if other features have the same text label. This can reduce clutter and free up space.

The default is LabelRemoveDuplicatesStrategy.automatic, which will be interpreted as LabelRemoveDuplicatesStrategy.none indicating that all labels should be shown if possible.

The distance within which to look for duplicates is controlled by LabelDefinition.removeDuplicatesDistance.

1.17.1 Overview

Data TypeDefault ValueJSON Example
LabelRemoveDuplicatesStrategyautomatic"removeDuplicates": "featureType"

1.17.2 Property values

ValuesSummary
automaticThe default approach to duplicate labels to is keep them (LabelRemoveDuplicatesStrategy.none).
allRemove nearby duplicate labels.
featureTypeRemove nearby duplicate labels, if they belong to the same Feature Type.
labelClassRemove nearby duplicate labels, if they below to the same Label Class.
noneNo duplicates should be removed.

1.17.3 Other property relationships


1.17.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property removeDuplicatesStrategy.

Remove duplicate labels (all features)
  • label class properties -> position options -> conflict resolution properties -> remove duplicate labels
Remove duplicate labelsremoveDuplicatesStrategy
remove duplicate labels IS do not removenone
remove duplicate labels IS remove within fixed distancefeatureType
remove duplicate labels IS remove allfeatureType

1.17.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property removeDuplicatesStrategy.

Duplicate labels (all features)
  • label class properties -> position options -> position properties -> duplicate labels
Duplicate labelsremoveDuplicatesStrategy
duplicate labels IS remove all duplicatesall
duplicate labels IS one label per featurenone
duplicate labels IS one label per partnone

1.18.0 repeatDistance

The distance apart (in points i.e. 1/72 inches) that the repetitions should be. In 3D scenes, only one label will be placed per line feature.

This value is only used if LabelDefinition.repeatStrategy is enabled. The distance is measured on the screen along the line feature. As the user zooms in closer, two repetitions move further apart on the screen, until there is room for a new repetition between them. The default is 216 points i.e. line labels should be repeated approximately every 3 inches along long features.

The distance is considered a guide for the approximate label separation and should not be used for precise distance markings.

A distance of 0 disables label repetition.

1.18.1 Overview

Data TypeDefault ValueJSON Example
double216"repeatLabelDistance":200

1.18.2 Property values

ValuesSummary
positive numbera signed numeric value

1.18.3 Other property relationships

None


1.18.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property repeatDistance.

Repeat minimal interval (line features)
  • label class properties -> position options -> conflict resolution properties -> repeat -> minimum interval
Repeat minimal intervalrepeatDistance
minimum intervalconverted to repeatDistance point value

1.18.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property repeatDistance.

None, not supported for repeatDistance

1.19.0 repeatStrategy

The strategy for whether a label should have multiple copies created and placed along or across the same feature. In 3D scenes, only label will be placed per line feature.

The default is LabelRepeatStrategy.automatic.

The frequency of repetition is controlled by the LabelDefinition.repeatDistance property.

This property is currently only supported for line features, but will be extended to polygons in the future.

1.19.1 Overview

Data TypeDefault ValueJSON Example
LabelRepeatStrategyautomatic"repeatLabel": true

1.19.2 Property values

ValuesSummary
automaticLabeling will use the default repetition for the feature type.
noneOnly place one label per feature.
repeatRepeat the label along or across the feature.

1.19.3 Other property relationships

None


1.19.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property repeatStrategy.

{"repeatLabel":true, "repeatLabelDistance":200} (line features)
  • label class properties -> position properties -> placement options -> placement properties -> offset along line
  • label class properties -> position options -> conflict resolution properties -> repeat -> minimum interval
{"repeatLabel":true, "repeatLabelDistance":200}repeatStrategy
offset along line IS best position AND minimum interval MORE THAN 0repeat

1.19.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property repeatStrategy.

None, not supported for repeatStrategy

1.20.0 stackAlignment

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

Multi-row text labels can be horizontally aligned on the left, right or at its center. This preference can be specified by the TextSymbol assigned to the LabelDefinition. By using the LabelDefinition.stackAlignment property, 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 default value is LabelStackAlignment.automatic (which will have the same effect on labels as LabelStackAlignment.textSymbol).

This property has no effect if LabelDefinition.stackStrategy = LabelStackStrategy.none.

1.20.1 Overview

Data TypeDefault ValueJSON Example
LabelStackAlignmenttextSymbol"stackAlignment": "dynamic"

1.20.2 Property values

ValuesSummary
automaticThe default behavior is to use LabelStackAlignment.textSymbol.
dynamicSet the alignment depending upon the label's position with respect to its feature.
textSymbolFollow the alignment specified by the TextSymbol.horizontalAlignment.

1.20.3 Other property relationships


1.20.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property stackAlignment.

Horizontal alignment (all features)
  • label class properties -> position options -> fitting strategy properties -> stack -> horizontal alignment
Horizontal alignmentstackAlignment
horizontal alignment IS choose bestdynamic
horizontal alignment IS constrain left or rightdynamic
horizontal alignment IS constrain lefttextSymbol
horizontal alignment IS constrain righttextSymbol
horizontal alignment IS constrain centertextSymbol

1.20.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property stackAlignment.

None, not supported for stackAlignment

1.21.0 stackRowLength

A value that limits the number of characters in a row of stacked text.

This length guides the decision on when to break long text strings into separate rows. The line break will be inserted between words, not in the middle of a word, so rows may be longer or shorter than the ideal. Depending on LabelDefinition.stackBreakPosition, the break may be inserted before the breaking word, or after.

The default value is -1 which means to use a default length determined by ArcGIS Runtime (currently 13 characters but may vary with feature-geometry in the future).

This property has no effect if LabelDefinition.stackStrategy = LabelStackStrategy.none.

1.21.1 Overview

Data TypeDefault ValueJSON Example
double-1"stackRowLength": 20

1.21.2 Property values

ValuesSummary
-1defaults to 13 characters
GREATER THAN 1row length

1.21.3 Other property relationships


1.21.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property stackRowLength.

Maximum characters per line (all features)
  • label class properties -> position options -> fitting strategy properties -> stack -> maximum characters per line
Maximum characters per linestackRowLength
maximum characters per linestackRowLength

1.21.5 Standard labeling publishing rules

None, not supported for stackRowLength

1.22.0 stackSeparators

The stack separators that should be used for automatic line breaking of label text.

Each LabelStackSeparator specifies a code point to be looked for in the text. A code point is often thought of as a single character in the text, but may need several chars in a String to describe it. So each LabelStackSeparator.separator is a String intended to describe one code point.

For example:

  • To use a comma as a separator, the LabelStackSeparator.separator string would be just ","
  • To use a Hebrew punctuation Paseq as a separator, the LabelStackSeparator.separator would need to encode the code point with utf16 value "\u05c0" if your SDK uses utf16 strings (e.g. Java, C#) or with the utf8 string "\x30\x35\x63\x30" if your SDK uses utf8 strings
  • To use higher range unicode code points such as Aegean Word Separator Dot which has utf32 hex value 10101, the LabelStackSeparator.separator would need to encode the code point with utf16 value "\ud800\udd01" if your SDK uses utf16 strings (e.g. Java, C#) or with the utf8 string "\xf0\x90\x84\x81" if your SDK uses utf8 strings

If it is found, then the LabelStackSeparator also specifies whether:

  • The text should always be broken here
  • Whether the separator code point should remain visible
  • Whether the separator code point should appear at the end of one row, or the beginning of the next

Three default separators are provided: a comma, a space, and a hyphen. Custom separators can be added, and default separators can be removed if not required.

This property has no effect if LabelDefinition.stackStrategy = LabelStackStrategy.none.

1.22.1 Overview

Data TypeDefault ValueJSON Example
MutableArray<LabelStackSeparator>[",", " ", "-"]"stackSeparators": [{separator:" ",visible:true,forced:false,breakPosition:"after"}, {separator:";",visible:false,forced:false,breakPosition:"after"}]

1.22.2 Property values

ValuesSummary
labelStackSeparator.breakPositionGets or sets the position where the separator will be written, if used and remaining visible.
labelStackSeparator.isForcedGets or sets a value indicating whether a line break must be inserted when the Separator is encountered.
isVisibleGets or sets a value indicating whether the separator should still be visible, if chosen as a line break position.
separatorGets or sets a string intended to describe one code point.

1.22.3 Other property relationships


1.22.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property stackSeparators.

Stacking separators (all features)
  • label class properties -> position options -> fitting strategy properties -> stack -> stacking separators
Stacking separatorsstackSeparators
stacking separatorsstackingSeparators

1.22.5 Standard labeling publishing rules

None, not supported for stackSeparators

1.23.0 stackStrategy

The strategy for whether the text should be stacked or wrapped, rather than placed as long trailing labels across the map.

This property controls whether stacking is allowed, or not, or should be calculated automatically based on feature type. The default is LabelStackStrategy.automatic, meaning that stacking will be enabled for point and polygon features and disabled for line features.

1.23.1 Overview

Data TypeDefault ValueJSON Example
LabelStackStrategyautomatic"stackLabel": true

1.23.2 Property values

ValuesSummary
automaticStacking will be enabled for some feature types.
noneThe text should not be broken, no matter how long it is.
allowThe label placement engine can break the text into two or more rows,if the rows are longer than the LabelDefinition.stackRowLength limit.

1.23.3 Other property relationships


1.23.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property stackStrategy.

Stack label (all features)
  • label class properties -> position options -> fitting strategy properties -> stack -> stack label
Stack labelstackStrategy
stack label IS trueallow

1.23.5 Standard labeling publishing rules

None, not supported for stackStrategy

1.24.0 textLayout

The layout of the text, which can be either horizontal, straight, perpendicular, or follow the line feature.

Optional specification of whether, once the text is positioned, it should be written:

  • Horizontally
  • Straight (i.e. parallel) to the tangent to the line feature
  • Straight in line with the point feature positioning angle
  • Perpendicular to the tangent or positioning angle
  • following the geometry of the line feature

The default is LabelTextLayout.automatic, which will be interpreted as:

  • LabelTextLayout.horizontal for labels attached to point features
  • LabelTextLayout.followFeature for labels attached to line features
  • LabelTextLayout.horizontal for labels attached to polygon features

1.24.1 Overview

Data TypeDefault ValueJSON Example
LabelTextLayoutautomatic"textLayout":"horizontal"

1.24.2 Property values

ValuesSummary
automaticThe text layout will be determined by the individual feature type.
horizontalText will be written horizontally (with respect to the screen).
perpendicularText will be written perpendicular to the LabelTextLayout.straight text layout.
straightText will be written along a straight line, following the point positioning angle or at a tangent to the line feature.
followFeatureText will bend to follow a curved or multi-segment line feature.

1.24.3 Other property relationships


1.24.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property textLayout.

Point layout (point features)
  • label class properties -> position options -> placement properties -> rotation -> alignment type
Point layouttextLayout
alignment type IS horizontalhorizontal
alignment type IS straightstraight
alignment type IS perpendicularperpendicular

Line layout (line features)
  • label class properties -> position options -> placement properties -> placement
Line layouttextLayout
placement IS centered straightstraight
placement IS centered curvedfollowFeature
placement IS centered perpendicularperpendicular
placement IS centered horizontalhorizontal
placement IS offset straightstraight
placement IS offset curvedfollowFeature
placement IS offset perpendicularperpendicular
placement IS offset horizontalhorizontal

Polygon layout (polygon features)
  • default
Polygon layouttextLayout
defaulthorizontal

1.24.5 Standard labeling publishing rules

None, not supported for textLayout

1.25.0 textOrientation

The orientation of the text, which can be either angle direction or screen-oriented. Not supported by 3D scenes.

Optional specification of whether text should follow the placement angle direction even if it means being rendered upside-down, or whether text should be flipped through 180 degrees to keep it screen-oriented. This setting will take effect whenever the feature geometry 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). The default is LabelTextOrientation.automatic, which is interpreted as LabelTextOrientation.screen.

1.25.1 Overview

Data TypeDefault ValueJSON Example
LabelTextOrientationautomatic"textOrientation":"direction"

1.25.2 Property values

ValuesSummary
automaticUse the default text orientation (LabelTextOrientation.screen).
directionText follows the placement angle direction, even if it means being drawn upside-down.
screenText follows the screen orientation, and flips if necessary.

1.25.3 Other property relationships


1.25.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property textOrientation.

Keep label upright (all features)
  • label class properties -> position options -> placement properties -> placement -> rotation
Keep label uprighttextOrientation
keep label upright IS truedirection
keep label upright IS falsescreen

1.25.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property textOrientation.

default (all features)
  • default
defaulttextOrientation
defaultpage

1.26.0 textSymbol

The text symbol which describes the overall appearance of label text (e.g. font and size).

If no LabelDefinition.textSymbol has been set, then no labels can be created.

1.26.1 Overview

Data TypeDefault ValueJSON Example
TextSymbolnull"symbol": {"type": "esriTS", "color": [78,0,78,255], "backgroundColor": null, "borderLineColor": null, "verticalAlignment": "bottom", "horizontalAlignment": "left", "rightToLeft": false, "angle": 0, "xoffset": 0, "yoffset": 0, "font": {"family": "Arial", "size": 12, "style": "normal", "weight": "bold", "decoration": "none"}}

1.26.2 Property values

ValuesSummary
backgroundColorThe color for the text symbol background.
colorThe color for the text symbol.
fontDecorationThe type of font decoration for the text symbol.
fontFamilyThe font family of the text symbol.
fontStyleThe font style of the text symbol.
fontWeightThe font weight of the text symbol.
haloColorThe color for the halo around the text symbol.
haloWidthThe size of the halo around the text symbol, in DIPs.
horizontalAlignmentThe horizontal alignment of the text symbol.
kerningEnabledIf kerning needs to be enabled. It is disabled by default.
outlineColorThe color for the text symbol outline.
outlineWidthThe width of the text symbol outline, in DIPs.
sizeThe font size of the text symbol.
textThe text of the text symbol.
verticalAlignmentThe vertical alignment of the text symbol.

1.26.3 Other property relationships

None


1.26.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property textSymbol.

symbol (all features)
  • label class properties -> symbol
symboltextSymbol
exported as CIM, un-editable in ArcGIS SDK

1.26.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property textSymbol.

symbol (all features)
  • label class properties -> symbol
symboltextSymbol
exported as CIM, un-editable in ArcGIS SDK

1.27.0 useCodedValues

Specifies whether the data source should translate domain identifiers into meanings using a CodedValueDomain.

For any translation to occur, the data source must have one or more CodedValueDomain s set up for the attribute fields. The default value is true i.e. translation will be done.

This property only affects Simple label expressions. Arcade expressions can use functions to specify when code translations should be carried out. Coded value translation for Webmap expressions is not currently supported.

1.27.1 Overview

Data TypeDefault ValueJSON Example
booltrue"useCodedValues": true

1.27.2 Property values

ValuesSummary
booleana true or false value

1.27.3 Other property relationships

None


1.27.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property useCodedValues.

Use coded values (all features)
  • label class properties -> class -> label expression -> language
  • label class properties -> class -> use coded value descriptions
  • label class properties -> class -> label expression -> expression
Use coded valuesuseCodedValues
language IS arcadefalse
language IS NOT arcadeuse coded value descriptions value

1.27.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property useCodedValues.

Use coded values (all features)
  • label class properties -> class -> label expression -> language
  • label class properties -> class -> use coded value descriptions
  • label class properties -> class -> label expression -> expression
Use coded valuesuseCodedValues
language IS arcadefalse
language IS NOT arcadeuse coded value descriptions value

1.28.0 whereClause

A SQL where clause expression that limits the set of features for which labels will be generated and placed.

This is a SQL where clause that can refer to the attributes of the feature. For example:

  • "" (no limitations)
  • "NAME LIKE 'A%'" (Only label features with NAME attribute values starting with 'A')
  • "(LENGTH > CAPACITY) and (TYPE = 1)" (Only label features whose attributes satisfy the SQL condition)

The default value is "" which will allow all features in the data source and extent to be labeled.

1.28.1 Overview

Data TypeDefault ValueJSON Example
String "where": "LENGTH > 0"

1.28.2 Property values

ValuesSummary
stringa string representation of the where clause query

1.28.3 Other property relationships

None


1.28.4 Maplex labeling publishing rules

Outlines which Maplex Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property whereClause.

SQL expression (all features)
  • label class properties -> class -> SQL query
SQL expressionwhereClause
new expressionwhereClause value

1.28.5 Standard labeling publishing rules

Outlines which Standard labeling Label class property settings are required to achieve a desired value for the ArcGIS Maps SDKs for Native Apps labeling property whereClause.

SQL expression (all features)
  • label class properties -> class -> SQL query
SQL expressionwhereClause
new expressionwhereClause value

2.0 Label Property relationships

2.1 priority x deconflictionStrategy

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
IF 'current label priority LESS THAN other overlapping label priority'
AND 'current label IS NOT overlapping a barrier feature symbol'
AND 'current label IS NOT overlapping an annotation symbol'
AND 'current label IS NOT overlapping a dimension symbol'
  THEN 'place label'

IF 'label priority MORE THAN OR EQUAL to the other overlapping label priority'
  IF 'deconflictionStrategy IS static'
    THEN 'label will not be placed'

  IF 'deconflictionStrategy IS dynamic'
    THEN 'label will attempt to move'

2.2 priority x removeDuplicatesStrategy

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
IF 'current label priority LESS THAN other label priority'
  THEN 'place label'

IF 'current label priority MORE THAN OR EQUAL TO other label priority'
  IF 'current label removeDuplicatesStrategy IS None'
    THEN 'place label'

  IF 'current label text EQUALS other label text'
  AND 'other label has been placed'
  AND 'other label position within current label removeDuplicatesDistance'
    IF 'current label removeDuplicatesStrategy IS in_Same_Feature_type'
    AND 'current label featureType EQUALS other label featureType'
      THEN 'Label will not be placed'

    IF 'current label removeDuplicatesStrategy IS in_Same_Label_class'
    AND 'current label labelClass EQUALS other label labelClass'
      THEN 'Label will not be placed'

    IF 'current label removeDuplicatesStrategy IS all'
      THEN 'Label will not be placed'

    OR
      THEN 'place label'

  OR
    THEN 'place label'

2.3 featureBoundaryOverlapStrategy x deconflictionStrategy

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
IF 'current label featureBoundaryOverlapStrategy IS allow'
AND 'current label overlaps featureBoundary'
  THEN 'label will be placed'

 IF 'current label featureBoundaryOverlapStrategy IS avoid'
AND 'current label overlaps featureBoundary'
  IF 'current label deconflictionStrategy IS static'
    THEN 'label will be placed'

  OR 'current label deconflictionStrategy IS dynamic'
    THEN 'label will attempt to move, but may still be placed on feature boundary'

IF 'current label featureBoundaryOverlapStrategy IS exclude'
AND 'current label overlaps featureBoundary'
  IF 'current label deconflictionStrategy IS static'
    THEN 'label will not be placed'

  OR 'current label deconflictionStrategy IS dynamic'
    THEN 'label will attempt to move, but will definitely not be placed on feature boundary'

2.4 featureInteriorOverlapStrategy x deconflictionStrategy

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
IF 'current label featureInteriorOverlapStrategy IS allow'
AND 'current label overlaps featureInterior'
  THEN 'label will be placed'

IF 'current label featureInteriorOverlapStrategy IS avoid'
AND 'current label overlaps featureInterior'
  IF 'current label deconflictionStrategy IS static'
    THEN 'label will be placed'

  OR 'current label deconflictionStrategy IS dynamic'
    THEN 'label will attempt to move, but may still be placed on feature interior'

IF 'current label featureInteriorOverlapStrategy IS exclude'
AND 'current label overlaps featureInterior'
  IF 'current label deconflictionStrategy IS static'
    THEN 'label will not be placed'

  OR 'current label deconflictionStrategy IS dynamic'
    THEN 'label will attempt to move, but will definitely not be placed on feature interior'

2.5 angle x placement

Use dark colors for code blocksCopy
1
2
IF 'placement IS offset from point'
  THEN 'label position IS calculated from angle'

2.6 angle x textLayout x placement

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
IF 'textLayout IS horizontal'
  IF 'placement IS offset from point'
    THEN 'label position IS calculated from angle, and label layout IS horizontal'

  OR
    THEN 'label position IS centered on point, and label layout IS horizontal'

IF 'textLayout IS straight'
  IF 'placement IS offset from point'
    THEN 'label position IS calculated from angle, and label layout IS rotated by angle'

  OR
    THEN 'label position IS centered on point, and label layout IS rotated by angle'

 IF 'textLayout IS perpendicular'
  IF 'placement IS offset from point'
    THEN 'label position IS calculated from angle, and label layout IS rotated by angle + 90'

  OR
    THEN 'label position IS centered on point, and label layout IS rotated by angle + 90'

IF 'textLayout IS followFeature'
  THEN 'ignore angle'

2.7 angle x textOrientation

Use dark colors for code blocksCopy
1
2
3
4
5
6
IF 'label IS rotated upside down'
  IF 'textOrientation IS set as direction'
    THEN 'allow upside down label text'

  IF 'textOrientation IS set as screen'
    THEN 'label text will flipped to appear upright'

2.8 stackAlignment x stackstrategy

Use dark colors for code blocksCopy
1
2
IF 'stackStrategy IS set to none'
  THEN 'stackAlignment has no effect'

2.9 stackRowLength x stackStrategy

Use dark colors for code blocksCopy
1
2
IF 'stackStrategy IS set to none'
  THEN 'stackRowLength has no effect'

2.10 stackSeparators x stackStrategy

Use dark colors for code blocksCopy
1
2
IF 'stackStrategy IS set to none'
  THEN 'stackSeparators has no effect'

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