QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
QgsSimpleMarkerSymbolLayer Class Reference

Simple marker symbol layer, consisting of a rendered shape with solid fill color and an stroke. More...

#include <qgsmarkersymbollayer.h>

Inheritance diagram for QgsSimpleMarkerSymbolLayer:
Inheritance graph
[legend]

Public Member Functions

 QgsSimpleMarkerSymbolLayer (Qgis::MarkerShape shape=Qgis::MarkerShape::Circle, double size=DEFAULT_SIMPLEMARKER_SIZE, double angle=DEFAULT_SIMPLEMARKER_ANGLE, Qgis::ScaleMethod scaleMethod=DEFAULT_SCALE_METHOD, const QColor &color=DEFAULT_SIMPLEMARKER_COLOR, const QColor &strokeColor=DEFAULT_SIMPLEMARKER_BORDERCOLOR, Qt::PenJoinStyle penJoinStyle=DEFAULT_SIMPLEMARKER_JOINSTYLE)
 Constructor for QgsSimpleMarkerSymbolLayer. More...
 
 ~QgsSimpleMarkerSymbolLayer () override
 
QRectF bounds (QPointF point, QgsSymbolRenderContext &context) override
 Returns the approximate bounding box of the marker symbol layer, taking into account any data defined overrides and offsets which are set for the marker layer. More...
 
QgsSimpleMarkerSymbolLayerclone () const override
 Shall be reimplemented by subclasses to create a deep copy of the instance. More...
 
QColor color () const override
 Returns the "representative" color of the symbol layer. More...
 
QColor fillColor () const override
 Returns the fill color for the symbol layer. More...
 
QString layerType () const override
 Returns a string that represents this layer type. More...
 
QgsMapUnitScale mapUnitScale () const override
 
QString ogrFeatureStyle (double mmScaleFactor, double mapUnitScaleFactor) const override
 
QgsUnitTypes::RenderUnit outputUnit () const override
 Returns the units to use for sizes and widths within the symbol layer. More...
 
Qt::PenCapStyle penCapStyle () const
 Returns the marker's stroke cap style (e.g., flat, round, etc). More...
 
Qt::PenJoinStyle penJoinStyle () const
 Returns the marker's stroke join style (e.g., miter, bevel, etc). More...
 
QVariantMap properties () const override
 Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer. More...
 
void renderPoint (QPointF point, QgsSymbolRenderContext &context) override
 Renders a marker at the specified point. More...
 
void setColor (const QColor &color) override
 Sets the "representative" color for the symbol layer. More...
 
void setFillColor (const QColor &color) override
 Sets the fill color for the symbol layer. More...
 
void setMapUnitScale (const QgsMapUnitScale &scale) override
 
void setOutputUnit (QgsUnitTypes::RenderUnit unit) override
 Sets the units to use for sizes and widths within the symbol layer. More...
 
void setPenCapStyle (Qt::PenCapStyle style)
 Sets the marker's stroke cap style (e.g., flat, round, etc). More...
 
void setPenJoinStyle (Qt::PenJoinStyle style)
 Sets the marker's stroke join style (e.g., miter, bevel, etc). More...
 
void setStrokeColor (const QColor &color) override
 Sets the marker's stroke color. More...
 
void setStrokeStyle (Qt::PenStyle strokeStyle)
 Sets the marker's stroke style (e.g., solid, dashed, etc) More...
 
void setStrokeWidth (double w)
 Sets the width of the marker's stroke. More...
 
void setStrokeWidthMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map scale for the width of the marker's stroke. More...
 
void setStrokeWidthUnit (QgsUnitTypes::RenderUnit u)
 Sets the unit for the width of the marker's stroke. More...
 
void startRender (QgsSymbolRenderContext &context) override
 Called before a set of rendering operations commences on the supplied render context. More...
 
QColor strokeColor () const override
 Returns the marker's stroke color. More...
 
Qt::PenStyle strokeStyle () const
 Returns the marker's stroke style (e.g., solid, dashed, etc) More...
 
double strokeWidth () const
 Returns the width of the marker's stroke. More...
 
const QgsMapUnitScalestrokeWidthMapUnitScale () const
 Returns the map scale for the width of the marker's stroke. More...
 
QgsUnitTypes::RenderUnit strokeWidthUnit () const
 Returns the unit for the width of the marker's stroke. More...
 
bool usesMapUnits () const override
 Returns true if the symbol layer has any components which use map unit based sizes. More...
 
bool writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const override
 write as DXF More...
 
void writeSldMarker (QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
 Writes the symbol layer definition as a SLD XML element. More...
 
- Public Member Functions inherited from QgsSimpleMarkerSymbolLayerBase
 QgsSimpleMarkerSymbolLayerBase (Qgis::MarkerShape shape=Qgis::MarkerShape::Circle, double size=DEFAULT_SIMPLEMARKER_SIZE, double angle=DEFAULT_SIMPLEMARKER_ANGLE, Qgis::ScaleMethod scaleMethod=DEFAULT_SCALE_METHOD)
 Constructor for QgsSimpleMarkerSymbolLayerBase. More...
 
 ~QgsSimpleMarkerSymbolLayerBase () override
 
QRectF bounds (QPointF point, QgsSymbolRenderContext &context) override
 Returns the approximate bounding box of the marker symbol layer, taking into account any data defined overrides and offsets which are set for the marker layer. More...
 
void renderPoint (QPointF point, QgsSymbolRenderContext &context) override
 Renders a marker at the specified point. More...
 
void setShape (Qgis::MarkerShape shape)
 Sets the rendered marker shape. More...
 
Qgis::MarkerShape shape () const
 Returns the shape for the rendered marker symbol. More...
 
void startRender (QgsSymbolRenderContext &context) override
 Called before a set of rendering operations commences on the supplied render context. More...
 
void stopRender (QgsSymbolRenderContext &context) override
 Called after a set of rendering operations has finished on the supplied render context. More...
 
- Public Member Functions inherited from QgsMarkerSymbolLayer
 QgsMarkerSymbolLayer (const QgsMarkerSymbolLayer &other)=delete
 QgsMarkerSymbolLayer cannot be copied. More...
 
double angle () const
 Returns the rotation angle for the marker, in degrees clockwise from north. More...
 
virtual QRectF bounds (QPointF point, QgsSymbolRenderContext &context)=0
 Returns the approximate bounding box of the marker symbol layer, taking into account any data defined overrides and offsets which are set for the marker layer. More...
 
void drawPreviewIcon (QgsSymbolRenderContext &context, QSize size) override
 
HorizontalAnchorPoint horizontalAnchorPoint () const
 Returns the horizontal anchor point for positioning the symbol. More...
 
QgsMapUnitScale mapUnitScale () const override
 
QPointF offset () const
 Returns the marker's offset, which is the horizontal and vertical displacement which the rendered marker will have from the original feature's geometry. More...
 
const QgsMapUnitScaleoffsetMapUnitScale () const
 Returns the map unit scale for the symbol's offset. More...
 
QgsUnitTypes::RenderUnit offsetUnit () const
 Returns the units for the symbol's offset. More...
 
QgsMarkerSymbolLayeroperator= (const QgsMarkerSymbolLayer &other)=delete
 QgsMarkerSymbolLayer cannot be copied. More...
 
QgsUnitTypes::RenderUnit outputUnit () const override
 Returns the units to use for sizes and widths within the symbol layer. More...
 
virtual void renderPoint (QPointF point, QgsSymbolRenderContext &context)=0
 Renders a marker at the specified point. More...
 
Qgis::ScaleMethod scaleMethod () const
 Returns the method to use for scaling the marker's size. More...
 
void setAngle (double angle)
 Sets the rotation angle for the marker. More...
 
void setHorizontalAnchorPoint (HorizontalAnchorPoint h)
 Sets the horizontal anchor point for positioning the symbol. More...
 
void setLineAngle (double lineAngle)
 Sets the line angle modification for the symbol's angle. More...
 
void setMapUnitScale (const QgsMapUnitScale &scale) override
 
void setOffset (QPointF offset)
 Sets the marker's offset, which is the horizontal and vertical displacement which the rendered marker should have from the original feature's geometry. More...
 
void setOffsetMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the symbol's offset. More...
 
void setOffsetUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units for the symbol's offset. More...
 
void setOutputUnit (QgsUnitTypes::RenderUnit unit) override
 Sets the units to use for sizes and widths within the symbol layer. More...
 
void setScaleMethod (Qgis::ScaleMethod scaleMethod)
 Sets the method to use for scaling the marker's size. More...
 
virtual void setSize (double size)
 Sets the symbol size. More...
 
void setSizeMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the symbol's size. More...
 
void setSizeUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units for the symbol's size. More...
 
void setVerticalAnchorPoint (VerticalAnchorPoint v)
 Sets the vertical anchor point for positioning the symbol. More...
 
double size () const
 Returns the symbol size. More...
 
const QgsMapUnitScalesizeMapUnitScale () const
 Returns the map unit scale for the symbol's size. More...
 
QgsUnitTypes::RenderUnit sizeUnit () const
 Returns the units for the symbol's size. More...
 
void startRender (QgsSymbolRenderContext &context) override
 Called before a set of rendering operations commences on the supplied render context. More...
 
void stopRender (QgsSymbolRenderContext &context) override
 Called after a set of rendering operations has finished on the supplied render context. More...
 
void toSld (QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
 Saves the symbol layer as SLD. More...
 
VerticalAnchorPoint verticalAnchorPoint () const
 Returns the vertical anchor point for positioning the symbol. More...
 
virtual void writeSldMarker (QDomDocument &doc, QDomElement &element, const QVariantMap &props) const
 Writes the symbol layer definition as a SLD XML element. More...
 
- Public Member Functions inherited from QgsSymbolLayer
 QgsSymbolLayer (const QgsSymbolLayer &other)=delete
 QgsSymbolLayer cannot be copied. More...
 
virtual ~QgsSymbolLayer ()
 
virtual bool canCauseArtifactsBetweenAdjacentTiles () const
 Returns true if the symbol layer rendering can cause visible artifacts across a single feature when the feature is rendered as a series of adjacent map tiles each containing a portion of the feature's geometry. More...
 
virtual QgsSymbolLayerclone () const =0
 Shall be reimplemented by subclasses to create a deep copy of the instance. More...
 
virtual QColor color () const
 Returns the "representative" color of the symbol layer. More...
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the symbol layer's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the symbol layer's property collection, used for data defined overrides. More...
 
virtual void drawPreviewIcon (QgsSymbolRenderContext &context, QSize size)=0
 
virtual double dxfAngle (QgsSymbolRenderContext &context) const
 Gets angle. More...
 
virtual QColor dxfBrushColor (QgsSymbolRenderContext &context) const
 Gets brush/fill color. More...
 
virtual Qt::BrushStyle dxfBrushStyle () const
 Gets brush/fill style. More...
 
virtual QColor dxfColor (QgsSymbolRenderContext &context) const
 Gets color. More...
 
virtual QVector< qreal > dxfCustomDashPattern (QgsUnitTypes::RenderUnit &unit) const
 Gets dash pattern. More...
 
virtual double dxfOffset (const QgsDxfExport &e, QgsSymbolRenderContext &context) const
 Gets offset. More...
 
virtual Qt::PenStyle dxfPenStyle () const
 Gets pen style. More...
 
virtual double dxfWidth (const QgsDxfExport &e, QgsSymbolRenderContext &context) const
 Gets line width. More...
 
bool enabled () const
 Returns true if symbol layer is enabled and will be drawn. More...
 
virtual double estimateMaxBleed (const QgsRenderContext &context) const
 Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context. More...
 
virtual QColor fillColor () const
 Returns the fill color for the symbol layer. More...
 
virtual Qgis::SymbolLayerFlags flags () const
 Returns flags which control the symbol layer's behavior. More...
 
virtual bool hasDataDefinedProperties () const
 Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties. More...
 
virtual bool isCompatibleWithSymbol (QgsSymbol *symbol) const
 Returns if the layer can be used below the specified symbol. More...
 
bool isLocked () const
 Returns true if the symbol layer colors are locked and the layer will ignore any symbol-level color changes. More...
 
virtual QString layerType () const =0
 Returns a string that represents this layer type. More...
 
virtual QgsMapUnitScale mapUnitScale () const
 
virtual QList< QgsSymbolLayerReferencemasks () const
 Returns masks defined by this symbol layer. More...
 
virtual QString ogrFeatureStyle (double mmScaleFactor, double mapUnitScaleFactor) const
 
QgsSymbolLayeroperator= (const QgsSymbolLayer &other)=delete
 QgsSymbolLayer cannot be copied. More...
 
virtual QgsUnitTypes::RenderUnit outputUnit () const
 Returns the units to use for sizes and widths within the symbol layer. More...
 
QgsPaintEffectpaintEffect () const
 Returns the current paint effect for the layer. More...
 
virtual void prepareExpressions (const QgsSymbolRenderContext &context)
 Prepares all data defined property expressions for evaluation. More...
 
virtual void prepareMasks (const QgsSymbolRenderContext &context)
 Prepares all mask internal objects according to what is defined in context This should be called prior to calling startRender() method. More...
 
virtual QVariantMap properties () const =0
 Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer. More...
 
int renderingPass () const
 Specifies the rendering pass in which this symbol layer should be rendered. More...
 
virtual void setColor (const QColor &color)
 Sets the "representative" color for the symbol layer. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the symbol layer's property collection, used for data defined overrides. More...
 
virtual void setDataDefinedProperty (Property key, const QgsProperty &property)
 Sets a data defined property for the layer. More...
 
void setEnabled (bool enabled)
 Sets whether symbol layer is enabled and should be drawn. More...
 
virtual void setFillColor (const QColor &color)
 Sets the fill color for the symbol layer. More...
 
void setLocked (bool locked)
 Sets whether the layer's colors are locked. More...
 
virtual void setMapUnitScale (const QgsMapUnitScale &scale)
 
virtual void setOutputUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units to use for sizes and widths within the symbol layer. More...
 
void setPaintEffect (QgsPaintEffect *effect)
 Sets the current paint effect for the layer. More...
 
void setRenderingPass (int renderingPass)
 Specifies the rendering pass in which this symbol layer should be rendered. More...
 
virtual void setStrokeColor (const QColor &color)
 Sets the stroke color for the symbol layer. More...
 
virtual bool setSubSymbol (QgsSymbol *symbol)
 Sets layer's subsymbol. takes ownership of the passed symbol. More...
 
virtual void startFeatureRender (const QgsFeature &feature, QgsRenderContext &context)
 Called before the layer will be rendered for a particular feature. More...
 
virtual void startRender (QgsSymbolRenderContext &context)=0
 Called before a set of rendering operations commences on the supplied render context. More...
 
virtual void stopFeatureRender (const QgsFeature &feature, QgsRenderContext &context)
 Called after the layer has been rendered for a particular feature. More...
 
virtual void stopRender (QgsSymbolRenderContext &context)=0
 Called after a set of rendering operations has finished on the supplied render context. More...
 
virtual QColor strokeColor () const
 Returns the stroke color for the symbol layer. More...
 
virtual QgsSymbolsubSymbol ()
 Returns the symbol's sub symbol, if present. More...
 
virtual void toSld (QDomDocument &doc, QDomElement &element, const QVariantMap &props) const
 Saves the symbol layer as SLD. More...
 
Qgis::SymbolType type () const
 
virtual QSet< QString > usedAttributes (const QgsRenderContext &context) const
 Returns the set of attributes referenced by the layer. More...
 
virtual bool usesMapUnits () const
 Returns true if the symbol layer has any components which use map unit based sizes. More...
 
virtual bool writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const
 write as DXF More...
 

Static Public Member Functions

static QgsSymbolLayercreate (const QVariantMap &properties=QVariantMap())
 Creates a new QgsSimpleMarkerSymbolLayer. More...
 
static QgsSymbolLayercreateFromSld (QDomElement &element)
 Creates a new QgsSimpleMarkerSymbolLayer from an SLD XML element. More...
 
- Static Public Member Functions inherited from QgsSimpleMarkerSymbolLayerBase
static QList< Qgis::MarkerShapeavailableShapes ()
 Returns a list of all available shape types. More...
 
static Qgis::MarkerShape decodeShape (const QString &name, bool *ok=nullptr)
 Attempts to decode a string representation of a shape name to the corresponding shape. More...
 
static QString encodeShape (Qgis::MarkerShape shape)
 Encodes a shape to its string representation. More...
 
static bool shapeIsFilled (Qgis::MarkerShape shape)
 Returns true if a symbol shape has a fill. More...
 
- Static Public Member Functions inherited from QgsSymbolLayer
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the symbol layer property definitions. More...
 

Protected Member Functions

void drawMarker (QPainter *p, QgsSymbolRenderContext &context)
 Draws the marker shape in the specified painter. More...
 
bool prepareCache (QgsSymbolRenderContext &context)
 Prepares cache image. More...
 
- Protected Member Functions inherited from QgsSimpleMarkerSymbolLayerBase
void calculateOffsetAndRotation (QgsSymbolRenderContext &context, double scaledSize, bool &hasDataDefinedRotation, QPointF &offset, double &angle) const
 Calculates the marker offset and rotation. More...
 
double calculateSize (QgsSymbolRenderContext &context, bool &hasDataDefinedSize) const
 Calculates the desired size of the marker, considering data defined size overrides. More...
 
bool prepareMarkerPath (Qgis::MarkerShape symbol)
 Prepares the layer for drawing the specified shape (QPainterPath version) More...
 
bool prepareMarkerShape (Qgis::MarkerShape shape)
 Prepares the layer for drawing the specified shape (QPolygonF version) More...
 
bool shapeToPolygon (Qgis::MarkerShape shape, QPolygonF &polygon) const
 Creates a polygon representing the specified shape. More...
 
- Protected Member Functions inherited from QgsMarkerSymbolLayer
 QgsMarkerSymbolLayer (bool locked=false)
 Constructor for QgsMarkerSymbolLayer. More...
 
void markerOffset (QgsSymbolRenderContext &context, double &offsetX, double &offsetY) const
 Calculates the required marker offset, including both the symbol offset and any displacement required to align with the marker's anchor point. More...
 
void markerOffset (QgsSymbolRenderContext &context, double width, double height, double &offsetX, double &offsetY) const
 Calculates the required marker offset, including both the symbol offset and any displacement required to align with the marker's anchor point. More...
 
void markerOffset (QgsSymbolRenderContext &context, double width, double height, QgsUnitTypes::RenderUnit widthUnit, QgsUnitTypes::RenderUnit heightUnit, double &offsetX, double &offsetY, const QgsMapUnitScale &widthMapUnitScale, const QgsMapUnitScale &heightMapUnitScale) const
 
- Protected Member Functions inherited from QgsSymbolLayer
 QgsSymbolLayer (Qgis::SymbolType type, bool locked=false)
 Constructor for QgsSymbolLayer. More...
 
void copyDataDefinedProperties (QgsSymbolLayer *destLayer) const
 Copies all data defined properties of this layer to another symbol layer. More...
 
void copyPaintEffect (QgsSymbolLayer *destLayer) const
 Copies paint effect of this layer to another symbol layer. More...
 
void restoreOldDataDefinedProperties (const QVariantMap &stringMap)
 Restores older data defined properties from string map. More...
 

Protected Attributes

QBrush mBrush
 QBrush corresponding to marker's fill style. More...
 
QImage mCache
 Cached image of marker, if using cached version. More...
 
QPen mPen
 QPen corresponding to marker's stroke style. More...
 
Qt::PenCapStyle mPenCapStyle = Qt::SquareCap
 Stroke pen cap style. More...
 
Qt::PenJoinStyle mPenJoinStyle
 Stroke pen join style. More...
 
QBrush mSelBrush
 QBrush to use as fill of selected symbols. More...
 
QImage mSelCache
 Cached image of selected marker, if using cached version. More...
 
QPen mSelPen
 QPen to use as stroke of selected symbols. More...
 
QColor mStrokeColor
 Stroke color. More...
 
Qt::PenStyle mStrokeStyle = Qt::SolidLine
 Stroke style. More...
 
double mStrokeWidth = 0
 Stroke width. More...
 
QgsMapUnitScale mStrokeWidthMapUnitScale
 Stroke width map unit scale. More...
 
QgsUnitTypes::RenderUnit mStrokeWidthUnit = QgsUnitTypes::RenderMillimeters
 Stroke width units. More...
 
bool mUsingCache = false
 true if using cached images of markers for drawing. More...
 
- Protected Attributes inherited from QgsSimpleMarkerSymbolLayerBase
QPainterPath mPath
 Painter path representing shape. If mPolygon is empty then the shape is stored in mPath. More...
 
QPolygonF mPolygon
 Polygon of points in shape. If polygon is empty then shape is using mPath. More...
 
Qgis::MarkerShape mShape
 Symbol shape. More...
 
- Protected Attributes inherited from QgsMarkerSymbolLayer
double mAngle = 0
 Marker rotation angle, in degrees clockwise from north. More...
 
HorizontalAnchorPoint mHorizontalAnchorPoint = HCenter
 Horizontal anchor point. More...
 
double mLineAngle = 0
 Line rotation angle (see setLineAngle() for details) More...
 
QPointF mOffset
 Marker offset. More...
 
QgsMapUnitScale mOffsetMapUnitScale
 Offset map unit scale. More...
 
QgsUnitTypes::RenderUnit mOffsetUnit = QgsUnitTypes::RenderMillimeters
 Offset units. More...
 
Qgis::ScaleMethod mScaleMethod = Qgis::ScaleMethod::ScaleDiameter
 Marker size scaling method. More...
 
double mSize = 2.0
 Marker size. More...
 
QgsMapUnitScale mSizeMapUnitScale
 Marker size map unit scale. More...
 
QgsUnitTypes::RenderUnit mSizeUnit = QgsUnitTypes::RenderMillimeters
 Marker size unit. More...
 
VerticalAnchorPoint mVerticalAnchorPoint = VCenter
 Vertical anchor point. More...
 
- Protected Attributes inherited from QgsSymbolLayer
QPainterPath mClipPath
 
QColor mColor
 
QgsPropertyCollection mDataDefinedProperties
 
bool mEnabled = true
 True if layer is enabled and should be drawn. More...
 
QgsFields mFields
 
bool mLocked = false
 
std::unique_ptr< QgsPaintEffectmPaintEffect
 
int mRenderingPass = 0
 
Qgis::SymbolType mType
 

Static Protected Attributes

static const int MAXIMUM_CACHE_WIDTH = 3000
 Maximum width/height of cache image. More...
 
- Static Protected Attributes inherited from QgsSymbolLayer
static const bool SELECT_FILL_BORDER = false
 Whether fill styles for selected features also highlight symbol stroke. More...
 
static const bool SELECT_FILL_STYLE = false
 Whether fill styles for selected features uses symbol layer style. More...
 
static const bool SELECTION_IS_OPAQUE = true
 Whether styles for selected features ignore symbol alpha. More...
 

Additional Inherited Members

- Public Types inherited from QgsMarkerSymbolLayer
enum  HorizontalAnchorPoint { Left , HCenter , Right }
 Symbol horizontal anchor points. More...
 
enum  VerticalAnchorPoint { Top , VCenter , Bottom }
 Symbol vertical anchor points. More...
 
- Public Types inherited from QgsSymbolLayer
enum  Property {
  PropertySize = 0 , PropertyAngle , PropertyName , PropertyFillColor ,
  PropertyStrokeColor , PropertyStrokeWidth , PropertyStrokeStyle , PropertyOffset ,
  PropertyCharacter , PropertyWidth , PropertyHeight , PropertyPreserveAspectRatio ,
  PropertyFillStyle , PropertyJoinStyle , PropertySecondaryColor , PropertyLineAngle ,
  PropertyLineDistance , PropertyGradientType , PropertyCoordinateMode , PropertyGradientSpread ,
  PropertyGradientReference1X , PropertyGradientReference1Y , PropertyGradientReference2X , PropertyGradientReference2Y ,
  PropertyGradientReference1IsCentroid , PropertyGradientReference2IsCentroid , PropertyBlurRadius , PropertyShapeburstUseWholeShape ,
  PropertyShapeburstMaxDistance , PropertyShapeburstIgnoreRings , PropertyFile , PropertyDistanceX ,
  PropertyDistanceY , PropertyDisplacementX , PropertyDisplacementY , PropertyOpacity ,
  PropertyCustomDash , PropertyCapStyle , PropertyPlacement , PropertyInterval ,
  PropertyOffsetAlongLine , PropertyAverageAngleLength , PropertyHorizontalAnchor , PropertyVerticalAnchor ,
  PropertyLayerEnabled , PropertyArrowWidth , PropertyArrowStartWidth , PropertyArrowHeadLength ,
  PropertyArrowHeadThickness , PropertyArrowHeadType , PropertyArrowType , PropertyOffsetX ,
  PropertyOffsetY , PropertyPointCount , PropertyRandomSeed , PropertyClipPoints ,
  PropertyDensityArea , PropertyFontFamily , PropertyFontStyle , PropertyDashPatternOffset ,
  PropertyTrimStart , PropertyTrimEnd , PropertyLineStartWidthValue , PropertyLineEndWidthValue ,
  PropertyLineStartColorValue , PropertyLineEndColorValue , PropertyMarkerClipping , PropertyRandomOffsetX ,
  PropertyRandomOffsetY , PropertyLineClipping
}
 Data definable properties. More...
 
- Static Protected Member Functions inherited from QgsMarkerSymbolLayer
static QPointF _rotatedOffset (QPointF offset, double angle)
 Adjusts a marker offset to account for rotation. More...
 

Detailed Description

Simple marker symbol layer, consisting of a rendered shape with solid fill color and an stroke.

Definition at line 176 of file qgsmarkersymbollayer.h.

Constructor & Destructor Documentation

◆ QgsSimpleMarkerSymbolLayer()

QgsSimpleMarkerSymbolLayer::QgsSimpleMarkerSymbolLayer ( Qgis::MarkerShape  shape = Qgis::MarkerShape::Circle,
double  size = DEFAULT_SIMPLEMARKER_SIZE,
double  angle = DEFAULT_SIMPLEMARKER_ANGLE,
Qgis::ScaleMethod  scaleMethod = DEFAULT_SCALE_METHOD,
const QColor &  color = DEFAULT_SIMPLEMARKER_COLOR,
const QColor &  strokeColor = DEFAULT_SIMPLEMARKER_BORDERCOLOR,
Qt::PenJoinStyle  penJoinStyle = DEFAULT_SIMPLEMARKER_JOINSTYLE 
)

Constructor for QgsSimpleMarkerSymbolLayer.

Parameters
shapesymbol shape
sizesymbol size (in mm)
anglesymbol rotation angle
scaleMethodscaling method for data defined scaling
colorfill color for symbol
strokeColorstroke color for symbol
penJoinStylejoin style for stroke pen

Definition at line 976 of file qgsmarkersymbollayer.cpp.

◆ ~QgsSimpleMarkerSymbolLayer()

QgsSimpleMarkerSymbolLayer::~QgsSimpleMarkerSymbolLayer ( )
overridedefault

Member Function Documentation

◆ bounds()

QRectF QgsSimpleMarkerSymbolLayer::bounds ( QPointF  point,
QgsSymbolRenderContext context 
)
overridevirtual

Returns the approximate bounding box of the marker symbol layer, taking into account any data defined overrides and offsets which are set for the marker layer.

Returns
approximate symbol bounds, in painter units
Since
QGIS 2.14

Reimplemented from QgsSimpleMarkerSymbolLayerBase.

Definition at line 1790 of file qgsmarkersymbollayer.cpp.

◆ clone()

QgsSimpleMarkerSymbolLayer * QgsSimpleMarkerSymbolLayer::clone ( ) const
overridevirtual

Shall be reimplemented by subclasses to create a deep copy of the instance.

Implements QgsSymbolLayer.

Definition at line 1387 of file qgsmarkersymbollayer.cpp.

◆ color()

QColor QgsSimpleMarkerSymbolLayer::color ( ) const
overridevirtual

Returns the "representative" color of the symbol layer.

Depending on the symbol layer type, this will have different meaning. For instance, a line symbol layer will generally return the stroke color of the layer, while a fill symbol layer will return the "fill" color instead of stroke.

Some symbol layer types will return an invalid QColor if they have no representative color associated (e.g. raster image based symbol layers).

See also
setColor()
strokeColor()
fillColor()

Reimplemented from QgsSymbolLayer.

Definition at line 1841 of file qgsmarkersymbollayer.cpp.

◆ create()

QgsSymbolLayer * QgsSimpleMarkerSymbolLayer::create ( const QVariantMap &  properties = QVariantMap())
static

Creates a new QgsSimpleMarkerSymbolLayer.

Parameters
propertiesa property map containing symbol properties (see properties())
Returns
new QgsSimpleMarkerSymbolLayer

Definition at line 986 of file qgsmarkersymbollayer.cpp.

◆ createFromSld()

QgsSymbolLayer * QgsSimpleMarkerSymbolLayer::createFromSld ( QDomElement &  element)
static

Creates a new QgsSimpleMarkerSymbolLayer from an SLD XML element.

Parameters
elementXML element containing SLD definition of symbol
Returns
new QgsSimpleMarkerSymbolLayer

Definition at line 1498 of file qgsmarkersymbollayer.cpp.

◆ drawMarker()

void QgsSimpleMarkerSymbolLayer::drawMarker ( QPainter *  p,
QgsSymbolRenderContext context 
)
protected

Draws the marker shape in the specified painter.

Parameters
pdestination QPainter
contextsymbol context
Note
this method does not handle setting the painter pen or brush to match the symbol's fill or stroke

Definition at line 1547 of file qgsmarkersymbollayer.cpp.

◆ fillColor()

QColor QgsSimpleMarkerSymbolLayer::fillColor ( ) const
inlineoverridevirtual

Returns the fill color for the symbol layer.

This property is not supported by all symbol layer types, only those with a fill component. Symbol layers without a fill component will return an invalid QColor.

See also
setFillColor()
color()
strokeColor()
Since
QGIS 2.1

Reimplemented from QgsSymbolLayer.

Definition at line 232 of file qgsmarkersymbollayer.h.

◆ layerType()

QString QgsSimpleMarkerSymbolLayer::layerType ( ) const
overridevirtual

Returns a string that represents this layer type.

Used for serialization. Should match with the string used to register this symbol layer in the registry.

Implements QgsSymbolLayer.

Definition at line 1087 of file qgsmarkersymbollayer.cpp.

◆ mapUnitScale()

QgsMapUnitScale QgsSimpleMarkerSymbolLayer::mapUnitScale ( ) const
overridevirtual

Reimplemented from QgsSymbolLayer.

Definition at line 1774 of file qgsmarkersymbollayer.cpp.

◆ ogrFeatureStyle()

QString QgsSimpleMarkerSymbolLayer::ogrFeatureStyle ( double  mmScaleFactor,
double  mapUnitScaleFactor 
) const
overridevirtual

Reimplemented from QgsSymbolLayer.

Definition at line 1436 of file qgsmarkersymbollayer.cpp.

◆ outputUnit()

QgsUnitTypes::RenderUnit QgsSimpleMarkerSymbolLayer::outputUnit ( ) const
overridevirtual

Returns the units to use for sizes and widths within the symbol layer.

Individual symbol layer subclasses will interpret this in different ways, e.g., a marker symbol layer may use it to specify the units for the marker size, while a line symbol layer may use it to specify the units for the line width.

Returns
output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol layer contains mixed units
See also
setOutputUnit()

Reimplemented from QgsSymbolLayer.

Definition at line 1759 of file qgsmarkersymbollayer.cpp.

◆ penCapStyle()

Qt::PenCapStyle QgsSimpleMarkerSymbolLayer::penCapStyle ( ) const
inline

Returns the marker's stroke cap style (e.g., flat, round, etc).

See also
setPenCapStyle()
penJoinStyle()
strokeColor()
strokeStyle()
Since
QGIS 3.20

Definition at line 304 of file qgsmarkersymbollayer.h.

◆ penJoinStyle()

Qt::PenJoinStyle QgsSimpleMarkerSymbolLayer::penJoinStyle ( ) const
inline

Returns the marker's stroke join style (e.g., miter, bevel, etc).

See also
setPenJoinStyle()
penCapStyle()
strokeColor()
strokeStyle()
Since
QGIS 2.16

Definition at line 283 of file qgsmarkersymbollayer.h.

◆ prepareCache()

bool QgsSimpleMarkerSymbolLayer::prepareCache ( QgsSymbolRenderContext context)
protected

Prepares cache image.

Returns
true in case of success, false if cache image size too large

Definition at line 1158 of file qgsmarkersymbollayer.cpp.

◆ properties()

QVariantMap QgsSimpleMarkerSymbolLayer::properties ( ) const
overridevirtual

Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer.

This is used to serialize a symbol layer perstistently.

Implements QgsSymbolLayer.

Definition at line 1362 of file qgsmarkersymbollayer.cpp.

◆ renderPoint()

void QgsSimpleMarkerSymbolLayer::renderPoint ( QPointF  point,
QgsSymbolRenderContext context 
)
overridevirtual

Renders a marker at the specified point.

Derived classes must implement this to handle drawing the point.

Parameters
pointposition at which to render point, in painter units
contextsymbol render context

Reimplemented from QgsSimpleMarkerSymbolLayerBase.

Definition at line 1328 of file qgsmarkersymbollayer.cpp.

◆ setColor()

void QgsSimpleMarkerSymbolLayer::setColor ( const QColor &  color)
overridevirtual

Sets the "representative" color for the symbol layer.

Depending on the symbol layer type, this will have different meaning. For instance, a line symbol layer will generally set the stroke color of the layer, while a fill symbol layer will set the "fill" color instead of stroke.

See also
color()
setStrokeColor()
setFillColor()

Reimplemented from QgsSymbolLayer.

Definition at line 1829 of file qgsmarkersymbollayer.cpp.

◆ setFillColor()

void QgsSimpleMarkerSymbolLayer::setFillColor ( const QColor &  color)
inlineoverridevirtual

Sets the fill color for the symbol layer.

This property is not supported by all symbol layer types, only those with a fill component.

See also
fillColor()
setColor()
setStrokeColor()
Since
QGIS 2.1

Reimplemented from QgsSymbolLayer.

Definition at line 233 of file qgsmarkersymbollayer.h.

◆ setMapUnitScale()

void QgsSimpleMarkerSymbolLayer::setMapUnitScale ( const QgsMapUnitScale scale)
overridevirtual

Reimplemented from QgsSymbolLayer.

Definition at line 1768 of file qgsmarkersymbollayer.cpp.

◆ setOutputUnit()

void QgsSimpleMarkerSymbolLayer::setOutputUnit ( QgsUnitTypes::RenderUnit  unit)
overridevirtual

Sets the units to use for sizes and widths within the symbol layer.

Individual symbol layer subclasses will interpret this in different ways, e.g., a marker symbol layer may use it to specify the units for the marker size, while a line symbol layer may use it to specify the units for the line width.

Parameters
unitoutput units
See also
outputUnit()

Reimplemented from QgsSymbolLayer.

Definition at line 1753 of file qgsmarkersymbollayer.cpp.

◆ setPenCapStyle()

void QgsSimpleMarkerSymbolLayer::setPenCapStyle ( Qt::PenCapStyle  style)
inline

Sets the marker's stroke cap style (e.g., flat, round, etc).

See also
penCapStyle()
penJoinStyle()
setStrokeColor()
setStrokeStyle()
Since
QGIS 3.20

Definition at line 314 of file qgsmarkersymbollayer.h.

◆ setPenJoinStyle()

void QgsSimpleMarkerSymbolLayer::setPenJoinStyle ( Qt::PenJoinStyle  style)
inline

Sets the marker's stroke join style (e.g., miter, bevel, etc).

Parameters
stylejoin style
See also
penJoinStyle()
setPenCapStyle()
setStrokeColor()
setStrokeStyle()
Since
QGIS 2.16

Definition at line 294 of file qgsmarkersymbollayer.h.

◆ setStrokeColor()

void QgsSimpleMarkerSymbolLayer::setStrokeColor ( const QColor &  color)
inlineoverridevirtual

Sets the marker's stroke color.

Parameters
colorstroke color
See also
strokeColor()
setStrokeStyle()
setPenJoinStyle()

Reimplemented from QgsSymbolLayer.

Definition at line 254 of file qgsmarkersymbollayer.h.

◆ setStrokeStyle()

void QgsSimpleMarkerSymbolLayer::setStrokeStyle ( Qt::PenStyle  strokeStyle)
inline

Sets the marker's stroke style (e.g., solid, dashed, etc)

Parameters
strokeStylestyle
See also
strokeStyle()
setStrokeColor()
setPenJoinStyle()
Since
QGIS 2.4

Definition at line 273 of file qgsmarkersymbollayer.h.

◆ setStrokeWidth()

void QgsSimpleMarkerSymbolLayer::setStrokeWidth ( double  w)
inline

Sets the width of the marker's stroke.

Parameters
wstroke width. See strokeWidthUnit() for units.
See also
strokeWidth()
setStrokeWidthUnit()
setStrokeWidthMapUnitScale()

Definition at line 331 of file qgsmarkersymbollayer.h.

◆ setStrokeWidthMapUnitScale()

void QgsSimpleMarkerSymbolLayer::setStrokeWidthMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map scale for the width of the marker's stroke.

Parameters
scalestroke width map unit scale
See also
strokeWidthMapUnitScale()
setStrokeWidth()
setStrokeWidthUnit()

Definition at line 357 of file qgsmarkersymbollayer.h.

◆ setStrokeWidthUnit()

void QgsSimpleMarkerSymbolLayer::setStrokeWidthUnit ( QgsUnitTypes::RenderUnit  u)
inline

Sets the unit for the width of the marker's stroke.

Parameters
ustroke width unit
See also
strokeWidthUnit()
setStrokeWidth()
setStrokeWidthMapUnitScale()

Definition at line 340 of file qgsmarkersymbollayer.h.

◆ startRender()

void QgsSimpleMarkerSymbolLayer::startRender ( QgsSymbolRenderContext context)
overridevirtual

Called before a set of rendering operations commences on the supplied render context.

This is always followed by a call to stopRender() after all rendering operations have been completed.

Subclasses can use this method to prepare for a set of rendering operations, e.g. by pre-evaluating paths or images to render, and performing other one-time optimisations.

See also
startFeatureRender()
stopRender()

Reimplemented from QgsSimpleMarkerSymbolLayerBase.

Definition at line 1092 of file qgsmarkersymbollayer.cpp.

◆ strokeColor()

QColor QgsSimpleMarkerSymbolLayer::strokeColor ( ) const
inlineoverridevirtual

Returns the marker's stroke color.

See also
setStrokeColor()
strokeStyle()
penJoinStyle()

Reimplemented from QgsSymbolLayer.

Definition at line 245 of file qgsmarkersymbollayer.h.

◆ strokeStyle()

Qt::PenStyle QgsSimpleMarkerSymbolLayer::strokeStyle ( ) const
inline

Returns the marker's stroke style (e.g., solid, dashed, etc)

See also
setStrokeStyle()
strokeColor()
penJoinStyle()
Since
QGIS 2.4

Definition at line 263 of file qgsmarkersymbollayer.h.

◆ strokeWidth()

double QgsSimpleMarkerSymbolLayer::strokeWidth ( ) const
inline

Returns the width of the marker's stroke.

See also
setStrokeWidth()
strokeWidthUnit()
strokeWidthMapUnitScale()

Definition at line 322 of file qgsmarkersymbollayer.h.

◆ strokeWidthMapUnitScale()

const QgsMapUnitScale & QgsSimpleMarkerSymbolLayer::strokeWidthMapUnitScale ( ) const
inline

Returns the map scale for the width of the marker's stroke.

See also
setStrokeWidthMapUnitScale()
strokeWidth()
strokeWidthUnit()

Definition at line 365 of file qgsmarkersymbollayer.h.

◆ strokeWidthUnit()

QgsUnitTypes::RenderUnit QgsSimpleMarkerSymbolLayer::strokeWidthUnit ( ) const
inline

Returns the unit for the width of the marker's stroke.

See also
setStrokeWidthUnit()
strokeWidth()
strokeWidthMapUnitScale()

Definition at line 348 of file qgsmarkersymbollayer.h.

◆ usesMapUnits()

bool QgsSimpleMarkerSymbolLayer::usesMapUnits ( ) const
overridevirtual

Returns true if the symbol layer has any components which use map unit based sizes.

Since
QGIS 3.18

Reimplemented from QgsSymbolLayer.

Definition at line 1783 of file qgsmarkersymbollayer.cpp.

◆ writeDxf()

bool QgsSimpleMarkerSymbolLayer::writeDxf ( QgsDxfExport e,
double  mmMapUnitScaleFactor,
const QString &  layerName,
QgsSymbolRenderContext context,
QPointF  shift = QPointF( 0.0, 0.0 ) 
) const
overridevirtual

write as DXF

Reimplemented from QgsSymbolLayer.

Definition at line 1561 of file qgsmarkersymbollayer.cpp.

◆ writeSldMarker()

void QgsSimpleMarkerSymbolLayer::writeSldMarker ( QDomDocument &  doc,
QDomElement &  element,
const QVariantMap &  props 
) const
overridevirtual

Writes the symbol layer definition as a SLD XML element.

Parameters
docXML document
elementparent XML element
propssymbol layer definition (see properties())

Reimplemented from QgsMarkerSymbolLayer.

Definition at line 1407 of file qgsmarkersymbollayer.cpp.

Member Data Documentation

◆ MAXIMUM_CACHE_WIDTH

const int QgsSimpleMarkerSymbolLayer::MAXIMUM_CACHE_WIDTH = 3000
staticprotected

Maximum width/height of cache image.

Definition at line 418 of file qgsmarkersymbollayer.h.

◆ mBrush

QBrush QgsSimpleMarkerSymbolLayer::mBrush
protected

QBrush corresponding to marker's fill style.

Definition at line 400 of file qgsmarkersymbollayer.h.

◆ mCache

QImage QgsSimpleMarkerSymbolLayer::mCache
protected

Cached image of marker, if using cached version.

Definition at line 403 of file qgsmarkersymbollayer.h.

◆ mPen

QPen QgsSimpleMarkerSymbolLayer::mPen
protected

QPen corresponding to marker's stroke style.

Definition at line 398 of file qgsmarkersymbollayer.h.

◆ mPenCapStyle

Qt::PenCapStyle QgsSimpleMarkerSymbolLayer::mPenCapStyle = Qt::SquareCap
protected

Stroke pen cap style.

Definition at line 396 of file qgsmarkersymbollayer.h.

◆ mPenJoinStyle

Qt::PenJoinStyle QgsSimpleMarkerSymbolLayer::mPenJoinStyle
protected

Stroke pen join style.

Definition at line 394 of file qgsmarkersymbollayer.h.

◆ mSelBrush

QBrush QgsSimpleMarkerSymbolLayer::mSelBrush
protected

QBrush to use as fill of selected symbols.

Definition at line 407 of file qgsmarkersymbollayer.h.

◆ mSelCache

QImage QgsSimpleMarkerSymbolLayer::mSelCache
protected

Cached image of selected marker, if using cached version.

Definition at line 409 of file qgsmarkersymbollayer.h.

◆ mSelPen

QPen QgsSimpleMarkerSymbolLayer::mSelPen
protected

QPen to use as stroke of selected symbols.

Definition at line 405 of file qgsmarkersymbollayer.h.

◆ mStrokeColor

QColor QgsSimpleMarkerSymbolLayer::mStrokeColor
protected

Stroke color.

Definition at line 384 of file qgsmarkersymbollayer.h.

◆ mStrokeStyle

Qt::PenStyle QgsSimpleMarkerSymbolLayer::mStrokeStyle = Qt::SolidLine
protected

Stroke style.

Definition at line 386 of file qgsmarkersymbollayer.h.

◆ mStrokeWidth

double QgsSimpleMarkerSymbolLayer::mStrokeWidth = 0
protected

Stroke width.

Definition at line 388 of file qgsmarkersymbollayer.h.

◆ mStrokeWidthMapUnitScale

QgsMapUnitScale QgsSimpleMarkerSymbolLayer::mStrokeWidthMapUnitScale
protected

Stroke width map unit scale.

Definition at line 392 of file qgsmarkersymbollayer.h.

◆ mStrokeWidthUnit

QgsUnitTypes::RenderUnit QgsSimpleMarkerSymbolLayer::mStrokeWidthUnit = QgsUnitTypes::RenderMillimeters
protected

Stroke width units.

Definition at line 390 of file qgsmarkersymbollayer.h.

◆ mUsingCache

bool QgsSimpleMarkerSymbolLayer::mUsingCache = false
protected

true if using cached images of markers for drawing.

This is faster, but cannot be used when data defined properties are present

Definition at line 415 of file qgsmarkersymbollayer.h.


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