MultilayerPointSymbol

A point symbol built with multiple layers of symbols to display graphics and features that have point or multipoint geometry. A MultilayerPointSymbol can contain multiple symbol layers that are combined to create different appearances, for example, concentric circles or a pushpin with a star drawn in a different color. You can access and modify the symbology of layers using MultilayerSymbol.symbolLayers. You can also change properties such as the MultilayerPointSymbol.size, MultilayerPointSymbol.angle, and MultilayerPointSymbol.angleAlignment. For more information about multilayer symbols, refer to Symbol layers.

If you create a MultilayerPointSymbol from a collection of SymbolLayer objects, the first symbol layer in the collection will be drawn first, with the second symbol layer on top of the first, and so on. Note that symbol layers in a multilayer symbol are in reverse order of how they appear in the JSON representation.

Since

200.1.0

See also

Constructors

Link copied to clipboard
constructor(symbolLayers: Iterable<SymbolLayer>, referenceProperties: SymbolReferenceProperties? = null)

Creates a multilayer point symbol object with symbol layers and SymbolReferenceProperties.

Properties

Link copied to clipboard

The angle of the symbol in degrees. The angle for multilayer point symbols is measured in degrees counterclockwise from the east, from 0 to 360. The angle for a multilayer point symbol defaults to 0. Marker symbol layers can have a separate heading value defined (which is also 0 by default). Setting a heading for a marker symbol layer does not affect the angle of the point symbol. When an angle value is set for the point symbol, however, that value is applied cumulatively to all the marker symbol layers it contains. The heading for individual symbol layers must be re-fetched in order to see the updated value.

Link copied to clipboard

Indicates whether the multilayer point symbol is rotated relative to the screen or map. If the value is SymbolAngleAlignment.Map, the multilayer point symbol is rotated relative to the map and will be affected by the map's rotation. If the value is SymbolAngleAlignment.Screen, the multilayer point symbol is rotated relative to the user's screen and is unaffected by the map's rotation. This is only applicable for 2D maps and is not supported in 3D scenes.

Link copied to clipboard
var size: Float

The symbol size in DIPs. When getting the size from a multilayer point symbol, the value reported is the largest size of all the symbol layers it contains. The symbol size is updated when its symbol layer sizes change (if there is a new largest layer size). When setting a new size at the point symbol level, the size of the largest symbol layer is given the provided value, and all the smaller layers are sized proportionately. An individual symbol layer can be given a specific size without affecting the other layers.

Inherited properties

Link copied to clipboard

The consensus color of all layers in the symbol (excluding those that are color-locked). A MultilayerSymbol may have many symbol layers. This property represents the value of all color and tint color properties of constituent symbol layers, excluding any StrokeSymbolLayer in a MultilayerPolygonSymbol, as those symbol layers are outlines. The property defines the color and tint color of symbols contained in VectorMarkerSymbolElement. Constituent symbol layers whose colorLocked property is true do not change color as a result of this function. To change outline colors, modify the outline symbol layer colors individually.

Link copied to clipboard

The properties change how the multilayer symbol behaves when attached to a renderer.

Link copied to clipboard

The symbol layers of the multilayer symbol. Symbol layers in a multilayer symbol are in reverse order of how they appear in the JSON representation from the server.

Functions

Link copied to clipboard
open override fun clone(): MultilayerPointSymbol

Inherited functions

Link copied to clipboard
suspend fun createSwatch(screenScale: Float, width: Float? = null, height: Float? = null, backgroundColor: Color = Color.transparent): Result<BitmapDrawable>

Creates a swatch of the symbol. This method will scale the symbol up or down in order to fit it in to the desired width and height of the swatch.

suspend fun createSwatch(screenScale: Float, width: Float, height: Float, geometry: Geometry, backgroundColor: Color = Color.transparent): Result<BitmapDrawable>

Creates a swatch of the symbol.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun toJson(): String

Convert an object to JSON string.