QGIS API Documentation  3.2.0-Bonn (bc43194)
Public Member Functions | Static Public Member Functions | List of all members
QgsMarkerSymbol Class Reference

#include <qgssymbol.h>

Inheritance diagram for QgsMarkerSymbol:
Inheritance graph
[legend]

Public Member Functions

 QgsMarkerSymbol (const QgsSymbolLayerList &layers=QgsSymbolLayerList())
 
double angle () const
 Returns the marker angle for the whole symbol. More...
 
QRectF bounds (QPointF point, QgsRenderContext &context, const QgsFeature &feature=QgsFeature()) const
 Returns the approximate bounding box of the marker symbol, which includes the bounding box of all symbol layers for the symbol. More...
 
QgsMarkerSymbolclone () const override
 Gets a deep copy of this symbol. More...
 
QgsProperty dataDefinedAngle () const
 Returns data defined angle for whole symbol (including all symbol layers). More...
 
QgsProperty dataDefinedSize () const
 Returns data defined size for whole symbol (including all symbol layers). More...
 
void renderPoint (QPointF point, const QgsFeature *f, QgsRenderContext &context, int layer=-1, bool selected=false)
 
ScaleMethod scaleMethod ()
 
void setAngle (double symbolAngle)
 Sets the angle for the whole symbol. More...
 
void setDataDefinedAngle (const QgsProperty &property)
 Set data defined angle for whole symbol (including all symbol layers). More...
 
void setDataDefinedSize (const QgsProperty &property)
 Set data defined size for whole symbol (including all symbol layers). More...
 
void setLineAngle (double lineAngle)
 Sets the line angle modification for the symbol's angle. More...
 
void setScaleMethod (QgsSymbol::ScaleMethod scaleMethod)
 
void setSize (double size)
 Sets the size for the whole symbol. More...
 
void setSizeMapUnitScale (const QgsMapUnitScale &scale)
 Sets the size map unit scale for the whole symbol (including all symbol layers). More...
 
void setSizeUnit (QgsUnitTypes::RenderUnit unit)
 Sets the size units for the whole symbol (including all symbol layers). More...
 
double size () const
 Returns the size for the whole symbol, which is the maximum size of all marker symbol layers in the symbol. More...
 
QgsMapUnitScale sizeMapUnitScale () const
 Returns the size map unit scale for the whole symbol. More...
 
QgsUnitTypes::RenderUnit sizeUnit () const
 Returns the size units for the whole symbol (including all symbol layers). More...
 
- Public Member Functions inherited from QgsSymbol
virtual ~QgsSymbol ()
 
bool appendSymbolLayer (QgsSymbolLayer *layer)
 Append symbol layer at the end of the list Ownership will be transferred. More...
 
QImage asImage (QSize size, QgsRenderContext *customContext=nullptr)
 Generate symbol as image. More...
 
QImage bigSymbolPreviewImage (QgsExpressionContext *expressionContext=nullptr)
 Returns a large (roughly 100x100 pixel) preview image for the symbol. More...
 
bool changeSymbolLayer (int index, QgsSymbolLayer *layer)
 delete layer at specified index and set a new one More...
 
bool clipFeaturesToExtent () const
 Returns whether features drawn by the symbol will be clipped to the render context's extent. More...
 
QColor color () const
 
bool deleteSymbolLayer (int index)
 delete symbol layer at specified index More...
 
void drawPreviewIcon (QPainter *painter, QSize size, QgsRenderContext *customContext=nullptr)
 Draw icon of the symbol that occupyies area given by size using the painter. More...
 
QString dump () const
 
void exportImage (const QString &path, const QString &format, QSize size)
 export symbol as image format. PNG and SVG supported More...
 
bool hasDataDefinedProperties () const
 Returns whether the symbol utilizes any data defined properties. More...
 
bool insertSymbolLayer (int index, QgsSymbolLayer *layer)
 Insert symbol layer to specified index Ownership will be transferred. More...
 
const QgsVectorLayerlayer () const
 
QgsMapUnitScale mapUnitScale () const
 
qreal opacity () const
 Returns the opacity for the symbol. More...
 
QgsUnitTypes::RenderUnit outputUnit () const
 Returns the units to use for sizes and widths within the symbol. More...
 
void renderFeature (const QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false, int currentVertexMarkerType=0, int currentVertexMarkerSize=0)
 Render a feature. More...
 
RenderHints renderHints () const
 Returns the rendering hint flags for the symbol. More...
 
void setClipFeaturesToExtent (bool clipFeaturesToExtent)
 Sets whether features drawn by the symbol should be clipped to the render context's extent. More...
 
void setColor (const QColor &color)
 
void setLayer (const QgsVectorLayer *layer)
 
void setMapUnitScale (const QgsMapUnitScale &scale)
 
void setOpacity (qreal opacity)
 Sets the opacity for the symbol. More...
 
void setOutputUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units to use for sizes and widths within the symbol. More...
 
void setRenderHints (RenderHints hints)
 Sets rendering hint flags for the symbol. More...
 
void startRender (QgsRenderContext &context, const QgsFields &fields=QgsFields())
 Begins the rendering process for the symbol. More...
 
void stopRender (QgsRenderContext &context)
 Ends the rendering process. More...
 
QgsSymbolLayersymbolLayer (int layer)
 Returns a specific symbol layers contained in the symbol. More...
 
int symbolLayerCount () const
 Returns total number of symbol layers contained in the symbol. More...
 
QgsSymbolLayerList symbolLayers ()
 Returns list of symbol layers contained in the symbol. More...
 
QgsSymbolRenderContextsymbolRenderContext ()
 Returns the symbol render context. More...
 
QgsSymbolLayertakeSymbolLayer (int index)
 Remove symbol layer from the list and return pointer to it. More...
 
void toSld (QDomDocument &doc, QDomElement &element, QgsStringMap props) const
 
SymbolType type () const
 
QSet< QString > usedAttributes (const QgsRenderContext &context) const
 Returns a list of attributes required to render this feature. More...
 

Static Public Member Functions

static QgsMarkerSymbolcreateSimple (const QgsStringMap &properties)
 Create a marker symbol with one symbol layer: SimpleMarker with specified properties. More...
 
- Static Public Member Functions inherited from QgsSymbol
static QgsSymboldefaultSymbol (QgsWkbTypes::GeometryType geomType)
 Returns new default symbol for specified geometry type. More...
 

Additional Inherited Members

- Public Types inherited from QgsSymbol
enum  RenderHint { DynamicRotation = 2 }
 Flags controlling behavior of symbols during rendering. More...
 
enum  ScaleMethod { ScaleArea, ScaleDiameter }
 Scale method. More...
 
enum  SymbolType { Marker, Line, Fill, Hybrid }
 Type of the symbol. More...
 
- Protected Member Functions inherited from QgsSymbol
 QgsSymbol (SymbolType type, const QgsSymbolLayerList &layers)
 
QgsSymbolLayerList cloneLayers () const
 Retrieve a cloned list of all layers that make up this symbol. More...
 
void renderUsingLayer (QgsSymbolLayer *layer, QgsSymbolRenderContext &context)
 Renders a context using a particular symbol layer without passing in a geometry. More...
 
void renderVertexMarker (QPointF pt, QgsRenderContext &context, int currentVertexMarkerType, int currentVertexMarkerSize)
 Render editing vertex marker at specified point. More...
 
- Static Protected Member Functions inherited from QgsSymbol
static QPolygonF _getLineString (QgsRenderContext &context, const QgsCurve &curve, bool clipToExtent=true)
 Creates a line string in screen coordinates from a QgsCurve in map coordinates. More...
 
static QPointF _getPoint (QgsRenderContext &context, const QgsPoint &point)
 Creates a point in screen coordinates from a QgsPoint in map coordinates. More...
 
static void _getPolygon (QPolygonF &pts, QList< QPolygonF > &holes, QgsRenderContext &context, const QgsPolygon &polygon, bool clipToExtent=true)
 Creates a polygon in screen coordinates from a QgsPolygonXYin map coordinates. More...
 
static QPolygonF _getPolygonRing (QgsRenderContext &context, const QgsCurve &curve, bool clipToExtent)
 Creates a polygon ring in screen coordinates from a QgsCurve in map coordinates. More...
 
- Protected Attributes inherited from QgsSymbol
bool mClipFeaturesToExtent = true
 
const QgsVectorLayermLayer = nullptr
 
QgsSymbolLayerList mLayers
 
qreal mOpacity = 1.0
 Symbol opacity (in the range 0 - 1) More...
 
RenderHints mRenderHints = nullptr
 
SymbolType mType
 

Detailed Description

Definition at line 611 of file qgssymbol.h.

Constructor & Destructor Documentation

◆ QgsMarkerSymbol()

QgsMarkerSymbol::QgsMarkerSymbol ( const QgsSymbolLayerList layers = QgsSymbolLayerList())

Definition at line 1122 of file qgssymbol.cpp.

Member Function Documentation

◆ angle()

double QgsMarkerSymbol::angle ( ) const

Returns the marker angle for the whole symbol.

Note that for symbols with multiple symbol layers, this will correspond just to the angle of the first symbol layer.

See also
setAngle()
Since
QGIS 2.16

Definition at line 1141 of file qgssymbol.cpp.

◆ bounds()

QRectF QgsMarkerSymbol::bounds ( QPointF  point,
QgsRenderContext context,
const QgsFeature feature = QgsFeature() 
) const

Returns the approximate bounding box of the marker symbol, which includes the bounding box of all symbol layers for the symbol.

It is recommended to use this method only between startRender() and stopRender() calls, or data defined rotation and offset will not be correctly calculated.

Parameters
pointlocation of rendered point in painter units
contextrender context
featurefeature being rendered at point (optional). If not specified, the bounds calculation will not include data defined parameters such as offset and rotation
Returns
approximate symbol bounds, in painter units
Since
QGIS 2.14

Definition at line 1512 of file qgssymbol.cpp.

◆ clone()

QgsMarkerSymbol * QgsMarkerSymbol::clone ( ) const
overridevirtual

Gets a deep copy of this symbol.

Needs to be reimplemented by subclasses. Ownership is transferred to the caller.

Implements QgsSymbol.

Definition at line 1531 of file qgssymbol.cpp.

◆ createSimple()

QgsMarkerSymbol * QgsMarkerSymbol::createSimple ( const QgsStringMap properties)
static

Create a marker symbol with one symbol layer: SimpleMarker with specified properties.

This is a convenience method for easier creation of marker symbols.

Definition at line 1087 of file qgssymbol.cpp.

◆ dataDefinedAngle()

QgsProperty QgsMarkerSymbol::dataDefinedAngle ( ) const

Returns data defined angle for whole symbol (including all symbol layers).

Returns
data defined angle, or invalid property if angle is not set at the marker level.
See also
setDataDefinedAngle()
Since
QGIS 3.0

Definition at line 1192 of file qgssymbol.cpp.

◆ dataDefinedSize()

QgsProperty QgsMarkerSymbol::dataDefinedSize ( ) const

Returns data defined size for whole symbol (including all symbol layers).

Returns
data defined size, or invalid property if size is not set at the marker level.
See also
setDataDefinedSize
Since
QGIS 3.0

Definition at line 1374 of file qgssymbol.cpp.

◆ renderPoint()

void QgsMarkerSymbol::renderPoint ( QPointF  point,
const QgsFeature f,
QgsRenderContext context,
int  layer = -1,
bool  selected = false 
)

Definition at line 1475 of file qgssymbol.cpp.

◆ scaleMethod()

QgsSymbol::ScaleMethod QgsMarkerSymbol::scaleMethod ( )

Definition at line 1440 of file qgssymbol.cpp.

◆ setAngle()

void QgsMarkerSymbol::setAngle ( double  symbolAngle)

Sets the angle for the whole symbol.

Individual symbol layer sizes will be rotated to maintain their current relative angle to the whole symbol angle.

Parameters
symbolAnglenew symbol angle
See also
angle()

Definition at line 1129 of file qgssymbol.cpp.

◆ setDataDefinedAngle()

void QgsMarkerSymbol::setDataDefinedAngle ( const QgsProperty property)

Set data defined angle for whole symbol (including all symbol layers).

See also
dataDefinedAngle()
Since
QGIS 3.0

Definition at line 1164 of file qgssymbol.cpp.

◆ setDataDefinedSize()

void QgsMarkerSymbol::setDataDefinedSize ( const QgsProperty property)

Set data defined size for whole symbol (including all symbol layers).

See also
dataDefinedSize()
Since
QGIS 3.0

Definition at line 1338 of file qgssymbol.cpp.

◆ setLineAngle()

void QgsMarkerSymbol::setLineAngle ( double  lineAngle)

Sets the line angle modification for the symbol's angle.

This angle is added to the marker's rotation and data defined rotation before rendering the symbol, and is usually used for orienting symbols to match a line's angle.

Parameters
lineAngleAngle in degrees, valid values are between 0 and 360
Since
QGIS 2.9

Definition at line 1153 of file qgssymbol.cpp.

◆ setScaleMethod()

void QgsMarkerSymbol::setScaleMethod ( QgsSymbol::ScaleMethod  scaleMethod)

Definition at line 1429 of file qgssymbol.cpp.

◆ setSize()

void QgsMarkerSymbol::setSize ( double  size)

Sets the size for the whole symbol.

Individual symbol layer sizes will be scaled to maintain their current relative size to the whole symbol size.

Parameters
sizenew symbol size
See also
size()
setSizeUnit()
setSizeMapUnitScale()

Definition at line 1238 of file qgssymbol.cpp.

◆ setSizeMapUnitScale()

void QgsMarkerSymbol::setSizeMapUnitScale ( const QgsMapUnitScale scale)

Sets the size map unit scale for the whole symbol (including all symbol layers).

Parameters
scalemap unit scale
See also
sizeMapUnitScale()
setSizeUnit()
setSize()
Since
QGIS 2.16

Definition at line 1313 of file qgssymbol.cpp.

◆ setSizeUnit()

void QgsMarkerSymbol::setSizeUnit ( QgsUnitTypes::RenderUnit  unit)

Sets the size units for the whole symbol (including all symbol layers).

Parameters
unitsize units
See also
sizeUnit()
setSizeMapUnitScale()
setSize()
Since
QGIS 2.16

Definition at line 1277 of file qgssymbol.cpp.

◆ size()

double QgsMarkerSymbol::size ( ) const

Returns the size for the whole symbol, which is the maximum size of all marker symbol layers in the symbol.

See also
setSize()
sizeUnit()
sizeMapUnitScale()

Definition at line 1261 of file qgssymbol.cpp.

◆ sizeMapUnitScale()

QgsMapUnitScale QgsMarkerSymbol::sizeMapUnitScale ( ) const

Returns the size map unit scale for the whole symbol.

Note that for symbols with multiple symbol layers, this will correspond just to the map unit scale for the first symbol layer.

See also
setSizeMapUnitScale()
sizeUnit()
size()
Since
QGIS 2.16

Definition at line 1325 of file qgssymbol.cpp.

◆ sizeUnit()

QgsUnitTypes::RenderUnit QgsMarkerSymbol::sizeUnit ( ) const

Returns the size units for the whole symbol (including all symbol layers).

Returns
size units, or mixed units if symbol layers have different units
See also
setSizeUnit()
sizeMapUnitScale()
size()
Since
QGIS 2.16

Definition at line 1289 of file qgssymbol.cpp.


The documentation for this class was generated from the following files: