QGIS API Documentation
3.18.1-Zürich (202f1bf7e5)
|
A simple line symbol layer, which renders lines using a line in a variety of styles (e.g. More...
#include <qgslinesymbollayer.h>
Public Member Functions | |
QgsSimpleLineSymbolLayer (const QColor &color=DEFAULT_SIMPLELINE_COLOR, double width=DEFAULT_SIMPLELINE_WIDTH, Qt::PenStyle penStyle=DEFAULT_SIMPLELINE_PENSTYLE) | |
Constructor for QgsSimpleLineSymbolLayer. More... | |
bool | alignDashPattern () const |
Returns true if dash patterns should be aligned to the start and end of lines, by applying subtle tweaks to the pattern sizing in order to ensure that the end of a line is represented by a complete dash element. More... | |
bool | canCauseArtifactsBetweenAdjacentTiles () const override |
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... | |
QgsSimpleLineSymbolLayer * | clone () const override |
Shall be reimplemented by subclasses to create a deep copy of the instance. More... | |
const QgsMapUnitScale & | customDashPatternMapUnitScale () const |
Returns the map unit scale for lengths used in the custom dash pattern. More... | |
QgsUnitTypes::RenderUnit | customDashPatternUnit () const |
Returns the units for lengths used in the custom dash pattern. More... | |
QVector< qreal > | customDashVector () const |
Returns the custom dash vector, which is the pattern of alternating drawn/skipped lengths used while rendering a custom dash pattern. More... | |
double | dashPatternOffset () const |
Returns the dash pattern offset, which dictates how far along the dash pattern the pattern should start rendering at. More... | |
const QgsMapUnitScale & | dashPatternOffsetMapUnitScale () const |
Returns the map unit scale the dash pattern offset value. More... | |
QgsUnitTypes::RenderUnit | dashPatternOffsetUnit () const |
Returns the units for the dash pattern offset. More... | |
bool | drawInsidePolygon () const |
Returns true if the line should only be drawn inside polygons, and any portion of the line which falls outside the polygon should be clipped away. More... | |
QColor | dxfColor (QgsSymbolRenderContext &context) const override |
Gets color. More... | |
QVector< qreal > | dxfCustomDashPattern (QgsUnitTypes::RenderUnit &unit) const override |
Gets dash pattern. More... | |
double | dxfOffset (const QgsDxfExport &e, QgsSymbolRenderContext &context) const override |
Gets offset. More... | |
Qt::PenStyle | dxfPenStyle () const override |
Gets pen style. More... | |
double | dxfWidth (const QgsDxfExport &e, QgsSymbolRenderContext &context) const override |
Gets line width. More... | |
double | estimateMaxBleed (const QgsRenderContext &context) const override |
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context. 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 pen cap style used to render the line (e.g. More... | |
Qt::PenJoinStyle | penJoinStyle () const |
Returns the pen join style used to render the line (e.g. More... | |
Qt::PenStyle | penStyle () const |
Returns the pen style used to render the line (e.g. 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 | renderPolygonStroke (const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override |
Renders the line symbol layer along the outline of polygon, using the given render context. More... | |
void | renderPolyline (const QPolygonF &points, QgsSymbolRenderContext &context) override |
Renders the line symbol layer along the line joining points, using the given render context. More... | |
void | setAlignDashPattern (bool enabled) |
Sets whether dash patterns should be aligned to the start and end of lines, by applying subtle tweaks to the pattern sizing in order to ensure that the end of a line is represented by a complete dash element. More... | |
void | setCustomDashPatternMapUnitScale (const QgsMapUnitScale &scale) |
Sets the map unit scale for lengths used in the custom dash pattern. More... | |
void | setCustomDashPatternUnit (QgsUnitTypes::RenderUnit unit) |
Sets the unit for lengths used in the custom dash pattern. More... | |
void | setCustomDashVector (const QVector< qreal > &vector) |
Sets the custom dash vector, which is the pattern of alternating drawn/skipped lengths used while rendering a custom dash pattern. More... | |
void | setDashPatternOffset (double offset) |
Sets the dash pattern offset, which dictates how far along the dash pattern the pattern should start rendering at. More... | |
void | setDashPatternOffsetMapUnitScale (const QgsMapUnitScale &scale) |
Sets the map unit scale for the dash pattern offset. More... | |
void | setDashPatternOffsetUnit (QgsUnitTypes::RenderUnit unit) |
Sets the unit for the dash pattern offset. More... | |
void | setDrawInsidePolygon (bool drawInsidePolygon) |
Sets whether the line should only be drawn inside polygons, and any portion of the line which falls outside the polygon should be clipped away. 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 pen cap style used to render the line (e.g. More... | |
void | setPenJoinStyle (Qt::PenJoinStyle style) |
Sets the pen join style used to render the line (e.g. More... | |
void | setPenStyle (Qt::PenStyle style) |
Sets the pen style used to render the line (e.g. More... | |
void | setTweakDashPatternOnCorners (bool enabled) |
Sets whether dash patterns tweaks should be applied on sharp corners, to ensure that a double-length dash is drawn running into and out of the corner. More... | |
void | setUseCustomDashPattern (bool b) |
Sets whether the line uses a custom dash pattern. 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... | |
bool | tweakDashPatternOnCorners () const |
Returns true if dash patterns tweaks should be applied on sharp corners, to ensure that a double-length dash is drawn running into and out of the corner. More... | |
bool | useCustomDashPattern () const |
Returns true if the line uses a custom dash pattern. More... | |
bool | usesMapUnits () const override |
Returns true if the symbol layer has any components which use map unit based sizes. More... | |
Public Member Functions inherited from QgsLineSymbolLayer | |
QgsLineSymbolLayer (const QgsLineSymbolLayer &other)=delete | |
QgsLineSymbolLayer cannot be copied. More... | |
void | drawPreviewIcon (QgsSymbolRenderContext &context, QSize size) override |
double | dxfWidth (const QgsDxfExport &e, QgsSymbolRenderContext &context) const override |
Gets line width. More... | |
QgsMapUnitScale | mapUnitScale () const override |
double | offset () const |
Returns the line's offset. More... | |
const QgsMapUnitScale & | offsetMapUnitScale () const |
Returns the map unit scale for the line's offset. More... | |
QgsUnitTypes::RenderUnit | offsetUnit () const |
Returns the units for the line's offset. More... | |
QgsLineSymbolLayer & | operator= (const QgsLineSymbolLayer &other)=delete |
QgsLineSymbolLayer cannot be copied. More... | |
QgsUnitTypes::RenderUnit | outputUnit () const override |
Returns the units to use for sizes and widths within the symbol layer. More... | |
RenderRingFilter | ringFilter () const |
Returns the line symbol layer's ring filter, which controls which rings are rendered when the line symbol is being used to draw a polygon's rings. More... | |
void | setMapUnitScale (const QgsMapUnitScale &scale) override |
void | setOffset (double offset) |
Sets the line's offset. More... | |
void | setOffsetMapUnitScale (const QgsMapUnitScale &scale) |
Sets the map unit scale for the line's offset. More... | |
void | setOffsetUnit (QgsUnitTypes::RenderUnit unit) |
Sets the unit for the line's offset. More... | |
void | setOutputUnit (QgsUnitTypes::RenderUnit unit) override |
Sets the units to use for sizes and widths within the symbol layer. More... | |
void | setRingFilter (QgsLineSymbolLayer::RenderRingFilter filter) |
Sets the line symbol layer's ring filter, which controls which rings are rendered when the line symbol is being used to draw a polygon's rings. More... | |
virtual void | setWidth (double width) |
Sets the width of the line symbol layer. More... | |
void | setWidthMapUnitScale (const QgsMapUnitScale &scale) |
void | setWidthUnit (QgsUnitTypes::RenderUnit unit) |
Sets the units for the line's width. More... | |
virtual double | width () const |
Returns the estimated width for the line symbol layer. More... | |
virtual double | width (const QgsRenderContext &context) const |
Returns the line symbol layer width, in painter units. More... | |
const QgsMapUnitScale & | widthMapUnitScale () const |
QgsUnitTypes::RenderUnit | widthUnit () const |
Returns the units for the line's width. More... | |
Public Member Functions inherited from QgsSymbolLayer | |
QgsSymbolLayer (const QgsSymbolLayer &other)=delete | |
QgsSymbolLayer cannot be copied. More... | |
virtual | ~QgsSymbolLayer () |
virtual QColor | color () const |
The fill color. More... | |
QgsPropertyCollection & | dataDefinedProperties () |
Returns a reference to the symbol layer's property collection, used for data defined overrides. More... | |
const QgsPropertyCollection & | dataDefinedProperties () const |
Returns a reference to the symbol layer's property collection, used for data defined overrides. More... | |
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... | |
bool | enabled () const |
Returns true if symbol layer is enabled and will be drawn. More... | |
virtual QColor | fillColor () const |
Gets fill color. 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 |
virtual QgsSymbolLayerReferenceList | masks () const |
Returns masks defined by this symbol layer. More... | |
QgsSymbolLayer & | operator= (const QgsSymbolLayer &other)=delete |
QgsSymbolLayer cannot be copied. More... | |
QgsPaintEffect * | paintEffect () 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... | |
int | renderingPass () const |
Specifies the rendering pass in which this symbol layer should be rendered. More... | |
virtual void | setColor (const QColor &color) |
The fill color. 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) |
Set fill color. More... | |
void | setLocked (bool locked) |
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) |
Set stroke color. 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 | stopFeatureRender (const QgsFeature &feature, QgsRenderContext &context) |
Called after the layer has been rendered for a particular feature. More... | |
virtual QColor | strokeColor () const |
Gets stroke color. More... | |
virtual QgsSymbol * | subSymbol () |
Returns the symbol's sub symbol, if present. More... | |
QgsSymbol::SymbolType | type () const |
virtual QSet< QString > | usedAttributes (const QgsRenderContext &context) const |
Returns the set of attributes referenced by the layer. 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 QgsSymbolLayer * | create (const QVariantMap &properties=QVariantMap()) |
Creates a new QgsSimpleLineSymbolLayer, using the settings serialized in the properties map (corresponding to the output from QgsSimpleLineSymbolLayer::properties() ). More... | |
static QgsSymbolLayer * | createFromSld (QDomElement &element) |
Creates a new QgsSimpleLineSymbolLayer from an SLD XML DOM element. More... | |
Static Public Member Functions inherited from QgsSymbolLayer | |
static const QgsPropertiesDefinition & | propertyDefinitions () |
Returns the symbol layer property definitions. More... | |
A simple line symbol layer, which renders lines using a line in a variety of styles (e.g.
solid, dotted, dashed).
Definition at line 39 of file qgslinesymbollayer.h.
QgsSimpleLineSymbolLayer::QgsSimpleLineSymbolLayer | ( | const QColor & | color = DEFAULT_SIMPLELINE_COLOR , |
double | width = DEFAULT_SIMPLELINE_WIDTH , |
||
Qt::PenStyle | penStyle = DEFAULT_SIMPLELINE_PENSTYLE |
||
) |
Constructor for QgsSimpleLineSymbolLayer.
Creates a simple line symbol in the specified color, width (in millimeters) and penStyle.
Definition at line 37 of file qgslinesymbollayer.cpp.
bool QgsSimpleLineSymbolLayer::alignDashPattern | ( | ) | const |
Returns true
if dash patterns should be aligned to the start and end of lines, by applying subtle tweaks to the pattern sizing in order to ensure that the end of a line is represented by a complete dash element.
Definition at line 1007 of file qgslinesymbollayer.cpp.
|
overridevirtual |
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.
The default implementation returns false
.
Reimplemented from QgsSymbolLayer.
Definition at line 1002 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Shall be reimplemented by subclasses to create a deep copy of the instance.
Implements QgsSymbolLayer.
Definition at line 434 of file qgslinesymbollayer.cpp.
|
static |
Creates a new QgsSimpleLineSymbolLayer, using the settings serialized in the properties map (corresponding to the output from QgsSimpleLineSymbolLayer::properties() ).
Definition at line 88 of file qgslinesymbollayer.cpp.
|
static |
Creates a new QgsSimpleLineSymbolLayer from an SLD XML DOM element.
Definition at line 509 of file qgslinesymbollayer.cpp.
|
inline |
Returns the map unit scale for lengths used in the custom dash pattern.
Definition at line 163 of file qgslinesymbollayer.h.
|
inline |
Returns the units for lengths used in the custom dash pattern.
Definition at line 157 of file qgslinesymbollayer.h.
|
inline |
Returns the custom dash vector, which is the pattern of alternating drawn/skipped lengths used while rendering a custom dash pattern.
Units for the vector are specified by customDashPatternUnit()
This setting is only used when useCustomDashPattern() returns true
.
Definition at line 183 of file qgslinesymbollayer.h.
|
inline |
Returns the dash pattern offset, which dictates how far along the dash pattern the pattern should start rendering at.
Offset units can be retrieved by calling dashPatternOffsetUnit().
Definition at line 211 of file qgslinesymbollayer.h.
|
inline |
Returns the map unit scale the dash pattern offset value.
Definition at line 258 of file qgslinesymbollayer.h.
|
inline |
Returns the units for the dash pattern offset.
Definition at line 247 of file qgslinesymbollayer.h.
|
inline |
Returns true
if the line should only be drawn inside polygons, and any portion of the line which falls outside the polygon should be clipped away.
This setting only has an effect when the line symbol is being used to render polygon rings.
Definition at line 280 of file qgslinesymbollayer.h.
|
overridevirtual |
Gets color.
Reimplemented from QgsSymbolLayer.
Definition at line 992 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Gets dash pattern.
Reimplemented from QgsSymbolLayer.
Definition at line 964 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Gets offset.
Reimplemented from QgsSymbolLayer.
Definition at line 1027 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Gets pen style.
Reimplemented from QgsSymbolLayer.
Definition at line 970 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Gets line width.
Reimplemented from QgsSymbolLayer.
Definition at line 975 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context.
For example, polygons drawn with an stroke will draw half the width of the stroke outside of the polygon. This amount is estimated, since it may be affected by data defined symbology rules.
Reimplemented from QgsSymbolLayer.
Definition at line 950 of file qgslinesymbollayer.cpp.
|
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 206 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Reimplemented from QgsSymbolLayer.
Definition at line 77 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Reimplemented from QgsSymbolLayer.
Definition at line 494 of file qgslinesymbollayer.cpp.
|
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.
Reimplemented from QgsSymbolLayer.
Definition at line 53 of file qgslinesymbollayer.cpp.
|
inline |
Returns the pen cap style used to render the line (e.g.
flat, square, round, etc).
Definition at line 122 of file qgslinesymbollayer.h.
|
inline |
Returns the pen join style used to render the line (e.g.
miter, bevel, round, etc).
Definition at line 108 of file qgslinesymbollayer.h.
|
inline |
Returns the pen style used to render the line (e.g.
solid, dashed, etc).
Definition at line 94 of file qgslinesymbollayer.h.
|
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 407 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Renders the line symbol layer along the outline of polygon, using the given render context.
The exterior ring of the polygon is specified in points. Optionally, interior rings are set via the rings argument.
Reimplemented from QgsLineSymbolLayer.
Definition at line 262 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Renders the line symbol layer along the line joining points, using the given render context.
Implements QgsLineSymbolLayer.
Definition at line 332 of file qgslinesymbollayer.cpp.
void QgsSimpleLineSymbolLayer::setAlignDashPattern | ( | bool | enabled | ) |
Sets whether dash patterns should be aligned to the start and end of lines, by applying subtle tweaks to the pattern sizing in order to ensure that the end of a line is represented by a complete dash element.
Definition at line 1012 of file qgslinesymbollayer.cpp.
|
inline |
Sets the map unit scale for lengths used in the custom dash pattern.
Definition at line 169 of file qgslinesymbollayer.h.
|
inline |
Sets the unit for lengths used in the custom dash pattern.
Definition at line 151 of file qgslinesymbollayer.h.
|
inline |
Sets the custom dash vector, which is the pattern of alternating drawn/skipped lengths used while rendering a custom dash pattern.
Units for the vector are specified by customDashPatternUnit()
This setting is only used when useCustomDashPattern() returns true
.
Definition at line 197 of file qgslinesymbollayer.h.
|
inline |
Sets the dash pattern offset, which dictates how far along the dash pattern the pattern should start rendering at.
Offset units are set via setDashPatternOffsetUnit().
Definition at line 225 of file qgslinesymbollayer.h.
|
inline |
Sets the map unit scale for the dash pattern offset.
Definition at line 269 of file qgslinesymbollayer.h.
|
inline |
Sets the unit for the dash pattern offset.
Definition at line 236 of file qgslinesymbollayer.h.
|
inline |
Sets whether the line should only be drawn inside polygons, and any portion of the line which falls outside the polygon should be clipped away.
This setting only has an effect when the line symbol is being used to render polygon rings.
Definition at line 291 of file qgslinesymbollayer.h.
|
overridevirtual |
Reimplemented from QgsSymbolLayer.
Definition at line 69 of file qgslinesymbollayer.cpp.
|
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.
unit | output units |
Reimplemented from QgsSymbolLayer.
Definition at line 45 of file qgslinesymbollayer.cpp.
|
inline |
Sets the pen cap style used to render the line (e.g.
flat, square, round, etc).
Definition at line 129 of file qgslinesymbollayer.h.
|
inline |
Sets the pen join style used to render the line (e.g.
miter, bevel, round, etc).
Definition at line 115 of file qgslinesymbollayer.h.
|
inline |
Sets the pen style used to render the line (e.g.
solid, dashed, etc).
Definition at line 101 of file qgslinesymbollayer.h.
void QgsSimpleLineSymbolLayer::setTweakDashPatternOnCorners | ( | bool | enabled | ) |
Sets whether dash patterns tweaks should be applied on sharp corners, to ensure that a double-length dash is drawn running into and out of the corner.
true
.Definition at line 1022 of file qgslinesymbollayer.cpp.
|
inline |
Sets whether the line uses a custom dash pattern.
Definition at line 145 of file qgslinesymbollayer.h.
|
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.
Implements QgsSymbolLayer.
Definition at line 211 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Called after a set of rendering operations has finished on the supplied render context.
This is always preceded by a call to startRender() before all rendering operations are commenced.
Subclasses can use this method to cleanup after a set of rendering operations.
Implements QgsSymbolLayer.
Definition at line 257 of file qgslinesymbollayer.cpp.
|
overridevirtual |
Saves the symbol layer as SLD.
Reimplemented from QgsSymbolLayer.
Definition at line 461 of file qgslinesymbollayer.cpp.
bool QgsSimpleLineSymbolLayer::tweakDashPatternOnCorners | ( | ) | const |
Returns true
if dash patterns tweaks should be applied on sharp corners, to ensure that a double-length dash is drawn running into and out of the corner.
true
.Definition at line 1017 of file qgslinesymbollayer.cpp.
|
inline |
Returns true
if the line uses a custom dash pattern.
Definition at line 137 of file qgslinesymbollayer.h.
|
overridevirtual |
Returns true
if the symbol layer has any components which use map unit based sizes.
Reimplemented from QgsSymbolLayer.
Definition at line 63 of file qgslinesymbollayer.cpp.