QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
Abstract base class for simple marker symbol layers. More...
#include <qgsmarkersymbollayerv2.h>
Public Types | |
enum | Shape { Square, Diamond, Pentagon, Hexagon, Triangle, EquilateralTriangle, Star, Arrow, Circle, Cross, CrossFill, Cross2, Line, ArrowHead, ArrowHeadFilled, SemiCircle, ThirdCircle, QuarterCircle, QuarterSquare, HalfSquare, DiagonalHalfSquare, RightHalfTriangle, LeftHalfTriangle } |
Marker symbol shapes. More... | |
Public Types inherited from QgsMarkerSymbolLayerV2 | |
enum | HorizontalAnchorPoint { Left, HCenter, Right } |
Symbol horizontal anchor points. More... | |
enum | VerticalAnchorPoint { Top, VCenter, Bottom } |
Symbol vertical anchor points. More... | |
Public Member Functions | |
QgsSimpleMarkerSymbolLayerBase (Shape shape=Circle, double size=DEFAULT_SIMPLEMARKER_SIZE, double angle=DEFAULT_SIMPLEMARKER_ANGLE, QgsSymbolV2::ScaleMethod scaleMethod=DEFAULT_SCALE_METHOD) | |
Constructor for QgsSimpleMarkerSymbolLayerBase. More... | |
QRectF | bounds (QPointF point, QgsSymbolV2RenderContext &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, QgsSymbolV2RenderContext &context) override |
Renders a marker at the specified point. More... | |
void | setShape (Shape shape) |
Sets the rendered marker shape. More... | |
Shape | shape () const |
Returns the shape for the rendered marker symbol. More... | |
void | startRender (QgsSymbolV2RenderContext &context) override |
void | stopRender (QgsSymbolV2RenderContext &context) override |
Public Member Functions inherited from QgsMarkerSymbolLayerV2 | |
double | angle () const |
Returns the rotation angle for the marker, in degrees clockwise from north. More... | |
void | drawPreviewIcon (QgsSymbolV2RenderContext &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 QgsMapUnitScale & | offsetMapUnitScale () const |
Returns the map unit scale for the symbol's offset. More... | |
QgsSymbolV2::OutputUnit | offsetUnit () const |
Returns the units for the symbol's offset. More... | |
QgsSymbolV2::OutputUnit | outputUnit () const override |
QgsSymbolV2::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 (QgsSymbolV2::OutputUnit unit) |
Sets the units for the symbol's offset. More... | |
void | setOutputUnit (QgsSymbolV2::OutputUnit unit) override |
void | setScaleMethod (QgsSymbolV2::ScaleMethod scaleMethod) |
Sets the method to use for scaling the marker's size. More... | |
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 (QgsSymbolV2::OutputUnit 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 QgsMapUnitScale & | sizeMapUnitScale () const |
Returns the map unit scale for the symbol's size. More... | |
QgsSymbolV2::OutputUnit | sizeUnit () const |
Returns the units for the symbol's size. More... | |
void | startRender (QgsSymbolV2RenderContext &context) override |
virtual void | toSld (QDomDocument &doc, QDomElement &element, const QgsStringMap &props) const override |
Writes the SLD element following the SLD v1.1 specs. More... | |
VerticalAnchorPoint | verticalAnchorPoint () const |
Returns the vertical anchor point for positioning the symbol. More... | |
virtual void | writeSldMarker (QDomDocument &doc, QDomElement &element, const QgsStringMap &props) const |
Writes the symbol layer definition as a SLD XML element. More... | |
Public Member Functions inherited from QgsSymbolLayerV2 | |
virtual | ~QgsSymbolLayerV2 () |
virtual QgsSymbolLayerV2 * | clone () const =0 |
Shall be reimplemented by subclasses to create a deep copy of the instance. More... | |
virtual QColor | color () const |
The fill color. More... | |
virtual Q_DECL_DEPRECATED const QgsExpression * | dataDefinedProperty (const QString &property) const |
Returns a data defined expression for a property, if set. More... | |
virtual Q_DECL_DEPRECATED QString | dataDefinedPropertyString (const QString &property) const |
Returns a data defined expression for a property, if set. More... | |
virtual double | dxfAngle (QgsSymbolV2RenderContext &context) const |
get angle More... | |
virtual QColor | dxfBrushColor (QgsSymbolV2RenderContext &context) const |
get brush/fill color More... | |
virtual Qt::BrushStyle | dxfBrushStyle () const |
get brush/fill style More... | |
virtual QColor | dxfColor (QgsSymbolV2RenderContext &context) const |
get color More... | |
virtual QVector< qreal > | dxfCustomDashPattern (QgsSymbolV2::OutputUnit &unit) const |
get dash pattern More... | |
virtual double | dxfOffset (const QgsDxfExport &e, QgsSymbolV2RenderContext &context) const |
get offset More... | |
virtual Qt::PenStyle | dxfPenStyle () const |
get pen style More... | |
virtual double | dxfWidth (const QgsDxfExport &e, QgsSymbolV2RenderContext &context) const |
get line width More... | |
virtual double | estimateMaxBleed () const |
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape. More... | |
virtual Q_DECL_DEPRECATED QVariant | evaluateDataDefinedProperty (const QString &property, const QgsFeature *feature, const QVariant &defaultVal=QVariant(), bool *ok=nullptr) const |
Evaluates the matching data defined property and returns the calculated value. More... | |
virtual QVariant | evaluateDataDefinedProperty (const QString &property, const QgsSymbolV2RenderContext &context, const QVariant &defaultVal=QVariant(), bool *ok=nullptr) const |
Evaluates the matching data defined property and returns the calculated value. More... | |
virtual QColor | fillColor () const |
Get fill color. More... | |
virtual QgsDataDefined * | getDataDefinedProperty (const QString &property) const |
Returns the data defined property corresponding to the specified property key. More... | |
virtual bool | hasDataDefinedProperties () const |
Checks whether the layer has any associated data defined properties. More... | |
virtual bool | hasDataDefinedProperty (const QString &property) const |
Checks whether the layer has a matching data defined property and if that property is currently actived. More... | |
virtual bool | isCompatibleWithSymbol (QgsSymbolV2 *symbol) const |
Returns if the layer can be used below the specified symbol. More... | |
bool | isLocked () const |
virtual QString | layerType () const =0 |
Returns a string that represents this layer type. More... | |
virtual QString | ogrFeatureStyle (double mmScaleFactor, double mapUnitScaleFactor) const |
virtual QColor | outlineColor () const |
Get outline color. More... | |
QgsPaintEffect * | paintEffect () const |
Returns the current paint effect for the layer. More... | |
virtual QgsStringMap | properties () const =0 |
Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer. More... | |
virtual void | removeDataDefinedProperties () |
Removes all data defined properties from the layer and deletes associated objects. More... | |
virtual void | removeDataDefinedProperty (const QString &property) |
Removes a data defined property from the layer. More... | |
int | renderingPass () const |
virtual void | setColor (const QColor &color) |
The fill color. More... | |
virtual Q_DECL_DEPRECATED void | setDataDefinedProperty (const QString &property, const QString &expressionString) |
Sets a data defined expression for a property. More... | |
virtual void | setDataDefinedProperty (const QString &property, QgsDataDefined *dataDefined) |
Sets a data defined property for the layer. More... | |
virtual void | setFillColor (const QColor &color) |
Set fill color. More... | |
void | setLocked (bool locked) |
virtual void | setOutlineColor (const QColor &color) |
Set outline color. More... | |
void | setPaintEffect (QgsPaintEffect *effect) |
Sets the current paint effect for the layer. More... | |
void | setRenderingPass (int renderingPass) |
virtual bool | setSubSymbol (QgsSymbolV2 *symbol) |
set layer's subsymbol. takes ownership of the passed symbol More... | |
virtual QgsSymbolV2 * | subSymbol () |
QgsSymbolV2::SymbolType | type () const |
virtual QSet< QString > | usedAttributes () const |
Returns the set of attributes referenced by the layer. More... | |
virtual bool | writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolV2RenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const |
write as DXF More... | |
Static Public Member Functions | |
static QList< Shape > | availableShapes () |
Returns a list of all available shape types. More... | |
static Shape | 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 (Shape shape) |
Encodes a shape to its string representation. More... | |
static bool | shapeIsFilled (Shape shape) |
Returns true if a symbol shape has a fill. More... | |
Protected Member Functions | |
void | calculateOffsetAndRotation (QgsSymbolV2RenderContext &context, double scaledSize, bool &hasDataDefinedRotation, QPointF &offset, double &angle) const |
Calculates the marker offset and rotation. More... | |
double | calculateSize (QgsSymbolV2RenderContext &context, bool &hasDataDefinedSize) const |
Calculates the desired size of the marker, considering data defined size overrides. More... | |
bool | prepareMarkerPath (Shape symbol) |
Prepares the layer for drawing the specified shape (QPainterPath version) More... | |
bool | prepareMarkerShape (Shape shape) |
Prepares the layer for drawing the specified shape (QPolygonF version) More... | |
bool | shapeToPolygon (Shape shape, QPolygonF &polygon) const |
Creates a polygon representing the specified shape. More... | |
Protected Member Functions inherited from QgsMarkerSymbolLayerV2 | |
QgsMarkerSymbolLayerV2 (bool locked=false) | |
Constructor for QgsMarkerSymbolLayerV2. More... | |
void | markerOffset (QgsSymbolV2RenderContext &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 (QgsSymbolV2RenderContext &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 (QgsSymbolV2RenderContext &context, double width, double height, QgsSymbolV2::OutputUnit widthUnit, QgsSymbolV2::OutputUnit heightUnit, double &offsetX, double &offsetY, const QgsMapUnitScale &widthMapUnitScale, const QgsMapUnitScale &heightMapUnitScale) const |
Protected Member Functions inherited from QgsSymbolLayerV2 | |
QgsSymbolLayerV2 (QgsSymbolV2::SymbolType type, bool locked=false) | |
void | copyDataDefinedProperties (QgsSymbolLayerV2 *destLayer) const |
Copies all data defined properties of this layer to another symbol layer. More... | |
void | copyPaintEffect (QgsSymbolLayerV2 *destLayer) const |
Copies paint effect of this layer to another symbol layer. More... | |
virtual Q_DECL_DEPRECATED QgsExpression * | expression (const QString &property) const |
Returns the data defined expression associated with a property. More... | |
virtual Q_DECL_DEPRECATED void | prepareExpressions (const QgsFields *fields, double scale=-1.0) |
Prepares all data defined property expressions for evaluation. More... | |
virtual void | prepareExpressions (const QgsSymbolV2RenderContext &context) |
Prepares all data defined property expressions for evaluation. More... | |
void | restoreDataDefinedProperties (const QgsStringMap &stringMap) |
Restores all data defined properties from string map. More... | |
void | saveDataDefinedProperties (QgsStringMap &stringMap) const |
Saves all data defined properties to a string map. More... | |
Protected Attributes | |
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... | |
Shape | mShape |
Symbol shape. More... | |
Protected Attributes inherited from QgsMarkerSymbolLayerV2 | |
double | mAngle |
Marker rotation angle, in degrees clockwise from north. More... | |
HorizontalAnchorPoint | mHorizontalAnchorPoint |
Horizontal anchor point. More... | |
double | mLineAngle |
Line rotation angle (see setLineAngle() for details) More... | |
QPointF | mOffset |
Marker offset. More... | |
QgsMapUnitScale | mOffsetMapUnitScale |
Offset map unit scale. More... | |
QgsSymbolV2::OutputUnit | mOffsetUnit |
Offset units. More... | |
QgsSymbolV2::ScaleMethod | mScaleMethod |
Marker size scaling method. More... | |
double | mSize |
Marker size. More... | |
QgsMapUnitScale | mSizeMapUnitScale |
Marker size map unit scale. More... | |
QgsSymbolV2::OutputUnit | mSizeUnit |
Marker size unit. More... | |
VerticalAnchorPoint | mVerticalAnchorPoint |
Vertical anchor point. More... | |
Protected Attributes inherited from QgsSymbolLayerV2 | |
QColor | mColor |
QMap< QString, QgsDataDefined *> | mDataDefinedProperties |
QgsFields | mFields |
bool | mLocked |
QgsPaintEffect * | mPaintEffect |
int | mRenderingPass |
QgsSymbolV2::SymbolType | mType |
Abstract base class for simple marker symbol layers.
Handles creation of the symbol shapes but leaves the actual drawing of the symbols to subclasses.
Definition at line 41 of file qgsmarkersymbollayerv2.h.
Marker symbol shapes.
Definition at line 46 of file qgsmarkersymbollayerv2.h.
QgsSimpleMarkerSymbolLayerBase::QgsSimpleMarkerSymbolLayerBase | ( | QgsSimpleMarkerSymbolLayerBase::Shape | shape = Circle , |
double | size = DEFAULT_SIMPLEMARKER_SIZE , |
||
double | angle = DEFAULT_SIMPLEMARKER_ANGLE , |
||
QgsSymbolV2::ScaleMethod | scaleMethod = DEFAULT_SCALE_METHOD |
||
) |
Constructor for QgsSimpleMarkerSymbolLayerBase.
shape | symbol shape for markers |
size | symbol size (in mm) |
angle | symbol rotation angle |
scaleMethod | scaling method for data defined scaling |
Definition at line 86 of file qgsmarkersymbollayerv2.cpp.
|
static |
Returns a list of all available shape types.
Definition at line 57 of file qgsmarkersymbollayerv2.cpp.
|
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.
Reimplemented from QgsMarkerSymbolLayerV2.
Reimplemented in QgsSimpleMarkerSymbolLayerV2.
Definition at line 251 of file qgsmarkersymbollayerv2.cpp.
|
protected |
Calculates the marker offset and rotation.
context | symbol render context |
scaledSize | size of symbol to render |
hasDataDefinedRotation | will be set to true if marker has data defined rotation |
offset | will be set to calculated marker offset (in painter units) |
angle | will be set to calculated marker angle |
Definition at line 638 of file qgsmarkersymbollayerv2.cpp.
|
protected |
Calculates the desired size of the marker, considering data defined size overrides.
context | symbol render context |
hasDataDefinedSize | will be set to true if marker uses data defined sizes |
Definition at line 611 of file qgsmarkersymbollayerv2.cpp.
|
static |
Attempts to decode a string representation of a shape name to the corresponding shape.
name | encoded shape name |
ok | if specified, will be set to true if shape was successfully decoded |
Definition at line 277 of file qgsmarkersymbollayerv2.cpp.
|
static |
Encodes a shape to its string representation.
shape | shape to encode |
Definition at line 335 of file qgsmarkersymbollayerv2.cpp.
|
protected |
Prepares the layer for drawing the specified shape (QPainterPath version)
Definition at line 540 of file qgsmarkersymbollayerv2.cpp.
|
protected |
Prepares the layer for drawing the specified shape (QPolygonF version)
Definition at line 389 of file qgsmarkersymbollayerv2.cpp.
|
overridevirtual |
Renders a marker at the specified point.
Derived classes must implement this to handle drawing the point.
point | position at which to render point, in painter units |
context | symbol render context |
Implements QgsMarkerSymbolLayerV2.
Reimplemented in QgsSimpleMarkerSymbolLayerV2.
Definition at line 173 of file qgsmarkersymbollayerv2.cpp.
|
inline |
Sets the rendered marker shape.
shape | new marker shape |
Definition at line 102 of file qgsmarkersymbollayerv2.h.
|
inline |
Returns the shape for the rendered marker symbol.
Definition at line 96 of file qgsmarkersymbollayerv2.h.
|
static |
Returns true if a symbol shape has a fill.
shape | shape to test |
Definition at line 97 of file qgsmarkersymbollayerv2.cpp.
|
protected |
Creates a polygon representing the specified shape.
shape | shape to create |
polygon | destination polygon for shape |
Definition at line 394 of file qgsmarkersymbollayerv2.cpp.
|
overridevirtual |
Implements QgsSymbolLayerV2.
Reimplemented in QgsFilledMarkerSymbolLayer, and QgsSimpleMarkerSymbolLayerV2.
Definition at line 131 of file qgsmarkersymbollayerv2.cpp.
|
overridevirtual |
Implements QgsSymbolLayerV2.
Reimplemented in QgsFilledMarkerSymbolLayer.
Definition at line 168 of file qgsmarkersymbollayerv2.cpp.
|
protected |
Painter path representing shape. If mPolygon is empty then the shape is stored in mPath.
Definition at line 165 of file qgsmarkersymbollayerv2.h.
|
protected |
Polygon of points in shape. If polygon is empty then shape is using mPath.
Definition at line 162 of file qgsmarkersymbollayerv2.h.
|
protected |
Symbol shape.
Definition at line 168 of file qgsmarkersymbollayerv2.h.