Skip To Content ArcGIS for Developers Sign In Dashboard

MultilayerPointSymbol Class

class Esri::ArcGISRuntime::MultilayerPointSymbol

A multi-layer point symbol. More...

Header: #include <MultilayerPointSymbol>
Since: Esri::ArcGISRuntime 100.2
Inherits: Esri::ArcGISRuntime::MultilayerSymbol

This class was introduced in Esri::ArcGISRuntime 100.2.

Public Functions

MultilayerPointSymbol(const QList<Esri::ArcGISRuntime::SymbolLayer *> &symbolLayers, QObject *parent = nullptr)
virtual ~MultilayerPointSymbol() override
float angle() const
Esri::ArcGISRuntime::SymbolAngleAlignment angleAlignment() const
void setAngle(float angle)
void setAngleAlignment(Esri::ArcGISRuntime::SymbolAngleAlignment angleAlignment)
void setSize(float size)
float size() const

Detailed Description

This is a point symbol with multiple layers. Each layer has its own properties, such as offset, anchor, and rotation, that can be combined to create a point symbol with special efects (concentric circles or a pushpin, for example). These symbols are rendered with point geometry.

Note: Symbol layers in a multilayer symbol are in reverse order of how they appear in the JSON representation.

// in this multilayer symbol pseudocode json, the 'symbolLayers' ordered list of symbol
// layers contains a solid stroke symbol layer followed by a solid fill symbol layer.
{ "symbolLayers": [{"type": "CIMSolidStroke", "color": "black"},{"type": "CIMSolidFill", "color": "red"}],"type": "CIMPointSymbol" }

// this is the solid fill symbol layer, the reverse order from the json representation
auto* symbolLayerIndexZero = multilayerSymbol->symboLayers()->at(0); // red fill in the image below

// this is the solid stroke symbol layer, the reverse order from the json representation
auto* symbolLayerIndexOne = multilayerSymbol->symboLayers()->at(1); // black outline in the image below

"MultilayerPoint symbol"

Multilayer symbol consisting of two layers.

Member Function Documentation

MultilayerPointSymbol::MultilayerPointSymbol(const QList<Esri::ArcGISRuntime::SymbolLayer *> &symbolLayers, QObject *parent = nullptr)

Constructor that takes a list of symbolLayers and an optional parent.

This function was introduced in Esri::ArcGISRuntime 100.5.

[override virtual] MultilayerPointSymbol::~MultilayerPointSymbol()


float MultilayerPointSymbol::angle() const

Returns the angle in degrees.

See also setAngle.

Esri::ArcGISRuntime::SymbolAngleAlignment MultilayerPointSymbol::angleAlignment() const

Returns the symbol angle alignment of the multi-layer point symbol.

See also setAngleAlignment().

void MultilayerPointSymbol::setAngle(float angle)

Sets the angle (in degrees) to angle.

Angle for multilayer point symbols and marker symbol layers 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 their own angle value defined (which is also 0 by default). Setting an angle 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. Clients use the angle provided for the symbol layers when rendering the multilayer symbol.

See also angle().

void MultilayerPointSymbol::setAngleAlignment(Esri::ArcGISRuntime::SymbolAngleAlignment angleAlignment)

Sets the symbol angle alignment of the multi-layer point symbol to angleAlignment.

Note: This property is only applicable for 2D and is not supported in 3D.

See also angleAlignment().

void MultilayerPointSymbol::setSize(float size)

Sets the size in device independent pixels (DIPs) to size.

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.

See also size().

float MultilayerPointSymbol::size() const

Returns the size in device independent pixels (DIPs).

See also setSize.

Feedback on this topic?