15#ifndef QGSLINEARREFERENCINGSYMBOLLAYER_H
16#define QGSLINEARREFERENCINGSYMBOLLAYER_H
49 QVariantMap properties() const override;
50 QString layerType() const override;
51 Qgis::SymbolLayerFlags flags() const override;
95 double interval() const;
104 void setInterval(
double interval );
116 double skipMultiplesOf() const;
128 void setSkipMultiplesOf(
double multiple );
135 bool rotateLabels()
const {
return mRotateLabels; }
201 bool showMarker()
const;
210 void setShowMarker(
bool show );
305 void renderPolylineInterval(
const QgsLineString *line,
QgsSymbolRenderContext &context,
double skipMultiples,
const QPointF &labelOffsetPainterUnits,
double averageAngleLengthPainterUnits,
bool showMarker );
306 void renderPolylineVertex(
const QgsLineString *line,
QgsSymbolRenderContext &context,
double skipMultiples,
const QPointF &labelOffsetPainterUnits,
double averageAngleLengthPainterUnits,
bool showMarker );
307 void renderGeometryPart(
QgsSymbolRenderContext &context,
const QgsAbstractGeometry *geometry,
double labelOffsetPainterUnitsX,
double labelOffsetPainterUnitsY,
double skipMultiples,
double averageAngleDistancePainterUnits,
bool showMarker );
308 void renderLineString(
QgsSymbolRenderContext &context,
const QgsLineString *line,
double labelOffsetPainterUnitsX,
double labelOffsetPainterUnitsY,
double skipMultiples,
double averageAngleDistancePainterUnits,
bool showMarker );
315 double mInterval = 1000;
316 double mSkipMultiplesOf = 0;
317 bool mRotateLabels =
true;
319 QPointF mLabelOffset{ 1, 0 };
324 std::unique_ptr<QgsNumericFormat> mNumericFormat;
326 bool mShowMarker =
false;
327 std::unique_ptr<QgsMarkerSymbol> mMarkerSymbol;
329 double mAverageAngleLength = 4;
333 QString mLabelProviderId;
The Qgis class provides global constants for use throughout the application.
LinearReferencingPlacement
Defines how/where the labels should be placed in a linear referencing symbol layer.
@ IntervalCartesian2D
Place labels at regular intervals, using Cartesian distance calculations on a 2D plane.
LinearReferencingLabelSource
Defines what quantity to use for the labels shown in a linear referencing symbol layer.
@ CartesianDistance2D
Distance along line, calculated using Cartesian calculations on a 2D plane.
RenderUnit
Rendering size units.
@ Millimeters
Millimeters.
Abstract base class for all geometries.
Line string geometry type, with support for z-dimension and m-values.
Abstract base class for line symbol layers.
double offset() const
Returns the line's offset.
Line symbol layer used for decorating accordingly to linear referencing.
double averageAngleLength() const
Returns the length of line over which the line's direction is averaged when calculating individual la...
void setAverageAngleUnit(Qgis::RenderUnit unit)
Sets the unit for the length over which the line's direction is averaged when calculating individual ...
void setAverageAngleMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the length over which the line's direction is averaged when calculating i...
Qgis::RenderUnit labelOffsetUnit() const
Returns the unit used for the offset between the line and linear referencing labels.
void setLabelOffset(const QPointF &offset)
Sets the offset between the line and linear referencing labels.
QPointF labelOffset() const
Returns the offset between the line and linear referencing labels.
const QgsMapUnitScale & labelOffsetMapUnitScale() const
Returns the map unit scale used for calculating the offset between the line and linear referencing la...
~QgsLinearReferencingSymbolLayer() override
Qgis::RenderUnit averageAngleUnit() const
Returns the unit for the length over which the line's direction is averaged when calculating individu...
void setRotateLabels(bool rotate)
Sets whether the labels and symbols should be rotated to match their line segment orientation.
const QgsMapUnitScale & averageAngleMapUnitScale() const
Returns the map unit scale for the length over which the line's direction is averaged when calculatin...
void setLabelOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale used for calculating the offset between the line and linear referencing label...
void setLabelOffsetUnit(Qgis::RenderUnit unit)
Sets the unit used for the offset between the line and linear referencing labels.
void setAverageAngleLength(double length)
Sets the length of line over which the line's direction is averaged when calculating individual label...
Struct for storing maximum and minimum scales for measurements in map units.
Abstract base class for all rendered symbols.
Container for all settings relating to text rendering.