Skip to content

SymbolLayer

SymbolLayer

  • SymbolLayer is a style layer that renders icon and text labels at points or along lines on the map.

Props

Prop Type Default Required Description
style SymbolLayerStyleProps none false Customizable style attributes
children ReactElement | ReactElement[] none false @deprecated passed children used to create an image with id of symbol in style and also set the iconImageName property accordingly.
This is now deprecated, use Image component instead.
sourceID `` VietmapGL.StyleSource.DefaultSourceID false

symbolPlacement

Name
symbolPlacement

Description
Label placement relative to its geometry.

Type
enum

Default Value
point

Supported Values
point - The label is placed at the point where the geometry is located.
line - The label is placed along the line of the geometry. Can only be used on LineString and Polygon geometries.
line-center - The label is placed at the center of the line of the geometry. Can only be used on LineString and Polygon geometries. Note that a single feature in a vector tile may contain multiple line geometries.

Expression

Parameters: zoom


symbolSpacing

Name
symbolSpacing

Description
Distance between two symbol anchors.

Type
number

Default Value
250

Units
pixels

Minimum
1

Expression

Parameters: zoom


symbolAvoidEdges

Name
symbolAvoidEdges

Description
If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Vietmap GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.

Type
boolean

Default Value
false

Expression

Parameters: zoom


symbolSortKey

Name
symbolSortKey

Description
Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When iconAllowOverlap or textAllowOverlap is false, features with a lower sort key will have priority during placement. When iconAllowOverlap or textAllowOverlap is set to true, features with a higher sort key will overlap over features with a lower sort key.

Type
number

Expression

Parameters: zoom, feature


symbolZOrder

Name
symbolZOrder

Description
Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their yPosition relative to the viewport. To control the order and prioritization of symbols otherwise, use symbolSortKey.

Type
enum

Default Value
auto

Supported Values
auto - Sorts symbols by symbol-sort-key if set. Otherwise, sorts symbols by their y-position relative to the viewport if icon-allow-overlap or text-allow-overlap is set to true or icon-ignore-placement or text-ignore-placement is false.
viewport-y - Sorts symbols by their y-position relative to the viewport if icon-allow-overlap or text-allow-overlap is set to true or icon-ignore-placement or text-ignore-placement is false.
source - Sorts symbols by symbol-sort-key if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data.

Expression

Parameters: zoom


iconAllowOverlap

Name
iconAllowOverlap

Description
If true, the icon will be visible even if it collides with other previously drawn symbols.

Type
boolean

Default Value
false

Requires
iconImage

**Disabled By iconOverlap

Expression

Parameters: zoom


iconIgnorePlacement

Name
iconIgnorePlacement

Description
If true, other symbols can be visible even if they collide with the icon.

Type
boolean

Default Value
false

Requires
iconImage

Expression

Parameters: zoom


iconOptional

Name
iconOptional

Description
If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.

Type
boolean

Default Value
false

Requires
iconImage, textField

Expression

Parameters: zoom


iconRotationAlignment

Name
iconRotationAlignment

Description
In combination with symbolPlacement, determines the rotation behavior of icons.

Type
enum

Default Value
auto

Supported Values
map - When symbol-placement is set to point, aligns icons east-west. When symbol-placement is set to line or line-center, aligns icon x-axes with the line.
viewport - Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of symbol-placement.
auto - When symbol-placement is set to point, this is equivalent to viewport. When symbol-placement is set to line or line-center, this is equivalent to map.

Requires
iconImage

Expression

Parameters: zoom


iconSize

Name
iconSize

Description
Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by iconSize. 1 is the original size; 3 triples the size of the image.

Type
number

Default Value
1

Units
factor of the original icon size

Minimum
0

Requires
iconImage

Expression

Parameters: zoom, feature


iconTextFit

Name
iconTextFit

Description
Scales the icon to fit around the associated text.

Type
enum

Default Value
none

Supported Values
none - The icon is displayed at its intrinsic aspect ratio.
width - The icon is scaled in the x-dimension to fit the width of the text.
height - The icon is scaled in the y-dimension to fit the height of the text.
both - The icon is scaled in both x- and y-dimensions.

Requires
iconImage, textField

Expression

Parameters: zoom


iconTextFitPadding

Name
iconTextFitPadding

Description
Size of the additional area added to dimensions determined by iconTextFit, in clockwise order: top, right, bottom, left.

Type
array<number>

Default Value
[0,0,0,0]

Units
pixels

Requires
iconImage, textField

Expression

Parameters: zoom


iconImage

Name
iconImage

Description
Name of image in sprite to use for drawing an image background.

Type
resolvedImage

Expression

Parameters: zoom, feature


iconRotate

Name
iconRotate

Description
Rotates the icon clockwise.

Type
number

Default Value
0

Units
degrees

Requires
iconImage

Expression

Parameters: zoom, feature


iconPadding

Name
iconPadding

Description
Size of additional area round the icon bounding box used for detecting symbol collisions. Values are declared using CSS margin shorthand syntax: a single value applies to all four sides; two values apply to [top/bottom, left/right]; three values apply to [top, left/right, bottom]; four values apply to [top, right, bottom, left]. For backwards compatibility, a single bare number is accepted, and treated the same as a oneElement array padding applied to all sides.

Type
number

Default Value
2

Units
pixels

Requires
iconImage

Expression

Parameters: zoom, feature


iconKeepUpright

Name
iconKeepUpright

Description
If true, the icon may be flipped to prevent it from being rendered upsideDown.

Type
boolean

Default Value
false

Requires
iconImage

Expression

Parameters: zoom


iconOffset

Name
iconOffset

Description
Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of iconSize to obtain the final offset in pixels. When combined with iconRotate the offset will be as if the rotated direction was up.

Type
array<number>

Default Value
[0,0]

Requires
iconImage

Expression

Parameters: zoom, feature


iconAnchor

Name
iconAnchor

Description
Part of the icon placed closest to the anchor.

Type
enum

Default Value
center

Supported Values
center - The center of the icon is placed closest to the anchor.
left - The left side of the icon is placed closest to the anchor.
right - The right side of the icon is placed closest to the anchor.
top - The top of the icon is placed closest to the anchor.
bottom - The bottom of the icon is placed closest to the anchor.
top-left - The top left corner of the icon is placed closest to the anchor.
top-right - The top right corner of the icon is placed closest to the anchor.
bottom-left - The bottom left corner of the icon is placed closest to the anchor.
bottom-right - The bottom right corner of the icon is placed closest to the anchor.

Requires
iconImage

Expression

Parameters: zoom, feature


iconPitchAlignment

Name
iconPitchAlignment

Description
Orientation of icon when map is pitched.

Type
enum

Default Value
auto

Supported Values
map - The icon is aligned to the plane of the map.
viewport - The icon is aligned to the plane of the viewport.
auto - Automatically matches the value of icon-rotation-alignment.

Requires
iconImage

Expression

Parameters: zoom


textPitchAlignment

Name
textPitchAlignment

Description
Orientation of text when map is pitched.

Type
enum

Default Value
auto

Supported Values
map - The text is aligned to the plane of the map.
viewport - The text is aligned to the plane of the viewport.
auto - Automatically matches the value of text-rotation-alignment.

Requires
textField

Expression

Parameters: zoom


textRotationAlignment

Name
textRotationAlignment

Description
In combination with symbolPlacement, determines the rotation behavior of the individual glyphs forming the text.

Type
enum

Default Value
auto

Supported Values
map - When symbol-placement is set to point, aligns text east-west. When symbol-placement is set to line or line-center, aligns text x-axes with the line.
viewport - Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of symbol-placement.
viewport-glyph - When symbol-placement is set to point, aligns text to the x-axis of the viewport. When symbol-placement is set to line or line-center, aligns glyphs to the x-axis of the viewport and places them along the line.
auto - When symbol-placement is set to point, this is equivalent to viewport. When symbol-placement is set to line or line-center, this is equivalent to map.

Requires
textField

Expression

Parameters: zoom


textField

Name
textField

Description
Value to use for a text label. If a plain string is provided, it will be treated as a formatted with default/inherited formatting options.

Type
formatted

Default Value
``

Expression

Parameters: zoom, feature


textFont

Name
textFont

Description
Font stack to use for displaying text.

Type
array<string>

Default Value
[Open Sans Regular,Arial Unicode MS Regular]

Requires
textField

Supported Style Functions camera **Expression

Parameters: zoom, feature


textSize

Name
textSize

Description
Font size.

Type
number

Default Value
16

Units
pixels

Minimum
0

Requires
textField

Expression

Parameters: zoom, feature


textMaxWidth

Name
textMaxWidth

Description
The maximum line width for text wrapping.

Type
number

Default Value
10

Units
ems

Minimum
0

Requires
textField

Supported Style Functions camera **Expression

Parameters: zoom, feature


textLineHeight

Name
textLineHeight

Description
Text leading value for multiLine text.

Type
number

Default Value
1.2

Units
ems

Requires
textField

Expression

Parameters: zoom


textLetterSpacing

Name
textLetterSpacing

Description
Text tracking amount.

Type
number

Default Value
0

Units
ems

Requires
textField

Supported Style Functions camera **Expression

Parameters: zoom, feature


textJustify

Name
textJustify

Description
Text justification options.

Type
enum

Default Value
center

Supported Values
auto - The text is aligned towards the anchor position.
left - The text is aligned to the left.
center - The text is centered.
right - The text is aligned to the right.

Requires
textField

Supported Style Functions camera **Expression

Parameters: zoom, feature


textRadialOffset

Name
textRadialOffset

Description
Radial offset of text, in the direction of the symbol's anchor. Useful in combination with textVariableAnchor, which defaults to using the twoDimensional textOffset if present.

Type
number

Default Value
0

Units
ems

Requires
textField

Expression

Parameters: zoom, feature


textVariableAnchor

Name
textVariableAnchor

Description
To increase the chance of placing highPriority labels on the map, you can provide an array of textAnchor locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use textJustify: auto to choose justification based on anchor position. To apply an offset, use the textRadialOffset or the twoDimensional textOffset.

Type
array<enum>

Requires
textField

Expression

Parameters: zoom


textAnchor

Name
textAnchor

Description
Part of the text placed closest to the anchor.

Type
enum

Default Value
center

Supported Values
center - The center of the text is placed closest to the anchor.
left - The left side of the text is placed closest to the anchor.
right - The right side of the text is placed closest to the anchor.
top - The top of the text is placed closest to the anchor.
bottom - The bottom of the text is placed closest to the anchor.
top-left - The top left corner of the text is placed closest to the anchor.
top-right - The top right corner of the text is placed closest to the anchor.
bottom-left - The bottom left corner of the text is placed closest to the anchor.
bottom-right - The bottom right corner of the text is placed closest to the anchor.

Requires
textField

**Disabled By textVariableAnchor

Supported Style Functions camera **Expression

Parameters: zoom, feature


textMaxAngle

Name
textMaxAngle

Description
Maximum angle change between adjacent characters.

Type
number

Default Value
45

Units
degrees

Requires
textField

Expression

Parameters: zoom


textWritingMode

Name
textWritingMode

Description
The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. The order of elements in an array define priority order for the placement of an orientation variant.

Type
array<enum>

Requires
textField

Expression

Parameters: zoom


textRotate

Name
textRotate

Description
Rotates the text clockwise.

Type
number

Default Value
0

Units
degrees

Requires
textField

Expression

Parameters: zoom, feature


textPadding

Name
textPadding

Description
Size of the additional area around the text bounding box used for detecting symbol collisions.

Type
number

Default Value
2

Units
pixels

Minimum
0

Requires
textField

Expression

Parameters: zoom


textKeepUpright

Name
textKeepUpright

Description
If true, the text may be flipped vertically to prevent it from being rendered upsideDown.

Type
boolean

Default Value
true

Requires
textField

Expression

Parameters: zoom


textTransform

Name
textTransform

Description
Specifies how to capitalize text, similar to the CSS textTransform property.

Type
enum

Default Value
none

Supported Values
none - The text is not altered.
uppercase - Forces all letters to be displayed in uppercase.
lowercase - Forces all letters to be displayed in lowercase.

Requires
textField

Expression

Parameters: zoom, feature


textOffset

Name
textOffset

Description
Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with textVariableAnchor, input values will be taken as absolute values. Offsets along the x and yAxis will be applied automatically based on the anchor position.

Type
array<number>

Default Value
[0,0]

Units
ems

Requires
textField

**Disabled By textRadialOffset

Expression

Parameters: zoom, feature


textAllowOverlap

Name
textAllowOverlap

Description
If true, the text will be visible even if it collides with other previously drawn symbols.

Type
boolean

Default Value
false

Requires
textField

**Disabled By textOverlap

Expression

Parameters: zoom


textIgnorePlacement

Name
textIgnorePlacement

Description
If true, other symbols can be visible even if they collide with the text.

Type
boolean

Default Value
false

Requires
textField

Expression

Parameters: zoom


textOptional

Name
textOptional

Description
If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.

Type
boolean

Default Value
false

Requires
textField, iconImage

Expression

Parameters: zoom


visibility

Name
visibility

Description
Whether this layer is displayed.

Type
enum

Default Value
visible

Supported Values
visible - The layer is shown.
none - The layer is not shown.


iconOpacity

Name
iconOpacity

Description
The opacity at which the icon will be drawn.

Type
number

Default Value
1

Minimum
0

**Maximum 1

Requires
iconImage

Expression

Parameters: zoom, feature, feature-state


iconOpacityTransition

Name

iconOpacityTransition

Description

The transition affecting any changes to this layer’s iconOpacity propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


iconColor

Name
iconColor

Description
The color of the icon. This can only be used with sdf icons.

Type
color

Default Value
#000000

Requires
iconImage

Expression

Parameters: zoom, feature, feature-state


iconColorTransition

Name

iconColorTransition

Description

The transition affecting any changes to this layer’s iconColor propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


iconHaloColor

Name
iconHaloColor

Description
The color of the icon's halo. Icon halos can only be used with SDF icons.

Type
color

Default Value
rgba(0, 0, 0, 0)

Requires
iconImage

Expression

Parameters: zoom, feature, feature-state


iconHaloColorTransition

Name

iconHaloColorTransition

Description

The transition affecting any changes to this layer’s iconHaloColor propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


iconHaloWidth

Name
iconHaloWidth

Description
Distance of halo to the icon outline.

Type
number

Default Value
0

Units
pixels

Minimum
0

Requires
iconImage

Expression

Parameters: zoom, feature, feature-state


iconHaloWidthTransition

Name

iconHaloWidthTransition

Description

The transition affecting any changes to this layer’s iconHaloWidth propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


iconHaloBlur

Name
iconHaloBlur

Description
Fade out the halo towards the outside.

Type
number

Default Value
0

Units
pixels

Minimum
0

Requires
iconImage

Expression

Parameters: zoom, feature, feature-state


iconHaloBlurTransition

Name

iconHaloBlurTransition

Description

The transition affecting any changes to this layer’s iconHaloBlur propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


iconTranslate

Name
iconTranslate

Description
Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.

Type
array<number>

Default Value
[0,0]

Units
pixels

Requires
iconImage

Expression

Parameters: zoom


iconTranslateTransition

Name

iconTranslateTransition

Description

The transition affecting any changes to this layer’s iconTranslate propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


iconTranslateAnchor

Name
iconTranslateAnchor

Description
Controls the frame of reference for iconTranslate.

Type
enum

Default Value
map

Supported Values
map - Icons are translated relative to the map.
viewport - Icons are translated relative to the viewport.

Requires
iconImage, iconTranslate

Expression

Parameters: zoom


textOpacity

Name
textOpacity

Description
The opacity at which the text will be drawn.

Type
number

Default Value
1

Minimum
0

**Maximum 1

Requires
textField

Expression

Parameters: zoom, feature, feature-state


textOpacityTransition

Name

textOpacityTransition

Description

The transition affecting any changes to this layer’s textOpacity propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


textColor

Name
textColor

Description
The color with which the text will be drawn.

Type
color

Default Value
#000000

Requires
textField

Expression

Parameters: zoom, feature, feature-state


textColorTransition

Name

textColorTransition

Description

The transition affecting any changes to this layer’s textColor propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


textHaloColor

Name
textHaloColor

Description
The color of the text's halo, which helps it stand out from backgrounds.

Type
color

Default Value
rgba(0, 0, 0, 0)

Requires
textField

Expression

Parameters: zoom, feature, feature-state


textHaloColorTransition

Name

textHaloColorTransition

Description

The transition affecting any changes to this layer’s textHaloColor propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


textHaloWidth

Name
textHaloWidth

Description
Distance of halo to the font outline. Max text halo width is ¼ of the fontSize.

Type
number

Default Value
0

Units
pixels

Minimum
0

Requires
textField

Expression

Parameters: zoom, feature, feature-state


textHaloWidthTransition

Name

textHaloWidthTransition

Description

The transition affecting any changes to this layer’s textHaloWidth propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


textHaloBlur

Name
textHaloBlur

Description
The halo's fadeout distance towards the outside.

Type
number

Default Value
0

Units
pixels

Minimum
0

Requires
textField

Expression

Parameters: zoom, feature, feature-state


textHaloBlurTransition

Name

textHaloBlurTransition

Description

The transition affecting any changes to this layer’s textHaloBlur propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


textTranslate

Name
textTranslate

Description
Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.

Type
array<number>

Default Value
[0,0]

Units
pixels

Requires
textField

Expression

Parameters: zoom


textTranslateTransition

Name

textTranslateTransition

Description

The transition affecting any changes to this layer’s textTranslate propery.

Type

{ duration, delay }

Units
milliseconds

Default Value
{duration: 300, delay: 0}


textTranslateAnchor

Name
textTranslateAnchor

Description
Controls the frame of reference for textTranslate.

Type
enum

Default Value
map

Supported Values
map - The text is translated relative to the map.
viewport - The text is translated relative to the viewport.

Requires
textField, textTranslate

Expression

Parameters: zoom