60 sipType = sipType_QgsSimpleLineCallout;
64 sipType = sipType_QgsManhattanLineCallout;
68 sipType = sipType_QgsCurvedLineCallout;
70 else if ( sipCpp->type() ==
"balloon" &&
dynamic_cast<QgsBalloonCallout *
>( sipCpp ) != NULL )
72 sipType = sipType_QgsBalloonCallout;
90 DrawCalloutToAllParts,
92 LabelAnchorPointPosition,
116 PoleOfInaccessibility = 0,
149 virtual QString
type()
const = 0;
179 virtual void readProperties(
const QVariantMap &props,
const QgsReadWriteContext &context );
188 virtual bool saveProperties( QDomDocument &doc, QDomElement &element,
const QgsReadWriteContext &context )
const;
197 virtual void restoreProperties(
const QDomElement &element,
const QgsReadWriteContext &context );
204 bool containsAdvancedEffects()
const;
233 virtual QSet< QString > referencedFields(
const QgsRenderContext &context )
const;
252 bool allFeaturePartsLabeled =
false;
286 QList< QgsCalloutPosition >
positions()
const {
return mPositions; }
292 QList< QgsCalloutPosition > mPositions;
316 void render(
QgsRenderContext &context,
const QRectF &rect,
const double angle,
const QgsGeometry &anchor, QgsCalloutContext &calloutContext );
328 void setEnabled(
bool enabled );
378 static QString encodeAnchorPoint(
AnchorPoint anchor );
413 static QString encodeLabelAnchorPoint( LabelAnchorPoint anchor );
431 QPainter::CompositionMode
blendMode()
const {
return mBlendMode; }
438 void setBlendMode( QPainter::CompositionMode mode ) { mBlendMode = mode; }
491 bool mEnabled =
false;
496 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
504 static void initPropertyDefinitions();
532 QString type() const override;
535 void readProperties( const QVariantMap &props, const
QgsReadWriteContext &context ) override;
538 QSet< QString > referencedFields( const
QgsRenderContext &context ) const override;
562 double minimumLength()
const {
return mMinCalloutLength; }
723 std::unique_ptr< QgsLineSymbol > mLineSymbol;
724 double mMinCalloutLength = 0;
728 double mOffsetFromAnchorDistance = 0;
732 double mOffsetFromLabelDistance = 0;
736 bool mDrawCalloutToAllParts =
false;
764 QString type() const override;
812 QString type() const override;
823 double curvature() const;
832 void setCurvature(
double curvature );
860 static Orientation decodeOrientation(
const QString &
string );
865 static QString encodeOrientation(
Orientation orientation );
869 double mCurvature = 0.1;
898 QString type() const override;
901 void readProperties( const QVariantMap &props, const
QgsReadWriteContext &context ) override;
904 QSet< QString > referencedFields( const
QgsRenderContext &context ) const override;
955 double offsetFromAnchor()
const {
return mOffsetFromAnchorDistance; }
1155 std::unique_ptr< QgsFillSymbol > mFillSymbol;
1156 std::unique_ptr< QgsMarkerSymbol > mMarkerSymbol;
1158 double mOffsetFromAnchorDistance = 0;
1165 double mWedgeWidth = 2.64;
1169 double mCornerRadius = 0.0;
RenderUnit
Rendering size units.
@ Millimeters
Millimeters.
Abstract base class for all geometries.
A cartoon talking bubble callout style.
void setCornerRadius(double radius)
Sets the radius of the corners for the balloon shapes.
double wedgeWidth() const
Returns the width of the wedge shape at the side it connects with the label.
const QgsMapUnitScale & wedgeWidthMapUnitScale() const
Returns the map unit scale for the wedge width.
QgsBalloonCallout & operator=(const QgsBalloonCallout &)=delete
double cornerRadius() const
Returns the corner radius of the balloon shapes.
void setCornerRadiusUnit(Qgis::RenderUnit unit)
Sets the unit for the corner radius.
Qgis::RenderUnit wedgeWidthUnit() const
Returns the units for the wedge width.
void setOffsetFromAnchorUnit(Qgis::RenderUnit unit)
Sets the unit for the offset from anchor distance.
void setMarginsUnit(Qgis::RenderUnit unit)
Sets the unit for the margins between the outside of the callout frame and the label's bounding recta...
void setCornerRadiusMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the corner radius.
Qgis::RenderUnit offsetFromAnchorUnit() const
Returns the units for the offset from anchor point.
const QgsMapUnitScale & offsetFromAnchorMapUnitScale() const
Returns the map unit scale for the offset from anchor.
const QgsMargins & margins() const
Returns the margins between the outside of the callout frame and the label's bounding rectangle.
void setWedgeWidthUnit(Qgis::RenderUnit unit)
Sets the unit for the wedge width.
void setOffsetFromAnchor(double distance)
Sets the offset distance from the anchor point at which to start the line.
Qgis::RenderUnit marginsUnit() const
Returns the units for the margins between the outside of the callout frame and the label's bounding r...
void setWedgeWidth(double width)
Sets the width of the wedge shape at the side it connects with the label.
void setOffsetFromAnchorMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the offset from anchor.
const QgsMapUnitScale & cornerRadiusMapUnitScale() const
Returns the map unit scale for the corner radius.
Qgis::RenderUnit cornerRadiusUnit() const
Returns the units for the corner radius.
void setMargins(const QgsMargins &margins)
Sets the margins between the outside of the callout frame and the label's bounding rectangle.
void setWedgeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the wedge width.
~QgsBalloonCallout() override
Represents the calculated placement of a map label callout line.
Contains additional contextual information about the context in which a callout is being rendered.
void addCalloutPosition(const QgsCalloutPosition &position)
Adds a rendered callout position.
QList< QgsCalloutPosition > positions() const
Returns the list of rendered callout positions.
QgsCoordinateReferenceSystem originalFeatureCrs
Contains the CRS of the original feature associated with this callout.
Abstract base class for callout renderers.
void setDataDefinedProperties(const QgsPropertyCollection &collection)
Sets the callout's property collection, used for data defined overrides.
void setBlendMode(QPainter::CompositionMode mode)
Sets the blending mode used for drawing callouts.
virtual ~QgsCallout()=default
virtual QString type() const =0
Returns a unique string representing the callout type.
virtual QgsCallout * clone() const =0
Duplicates a callout by creating a deep copy of the callout.
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the callout's property collection, used for data defined overrides.
AnchorPoint anchorPoint() const
Returns the feature's anchor point position.
LabelAnchorPoint labelAnchorPoint() const
Returns the label's anchor point position.
AnchorPoint
Feature's anchor point position.
@ PointOnExterior
A point on the surface's outline closest to the label is used as anchor for polygon geometries.
@ Centroid
The surface's centroid is used as anchor for polygon geometries.
@ PointOnSurface
A point guaranteed to be on the surface is used as anchor for polygon geometries.
const QgsPropertyCollection & dataDefinedProperties() const
Returns a reference to the callout's property collection, used for data defined overrides.
void setLabelAnchorPoint(LabelAnchorPoint anchor)
Sets the label's anchor point position.
virtual void draw(QgsRenderContext &context, const QRectF &bodyBoundingBox, const double angle, const QgsGeometry &anchor, QgsCalloutContext &calloutContext)=0
Performs the actual rendering of the callout implementation onto the specified render context.
DrawOrder
Options for draw order (stacking) of callouts.
@ OrderBelowIndividualLabels
Render callouts below their individual associated labels, some callouts may be drawn over other label...
@ OrderBelowAllLabels
Render callouts below all labels.
QPainter::CompositionMode blendMode() const
Returns the blending mode used for drawing callouts.
LabelAnchorPoint
Label's anchor point position.
@ LabelPointOnExterior
The point on the label's boundary closest to the feature.
@ LabelBottomLeft
Bottom left corner of the label's boundary.
@ LabelBottomMiddle
Bottom middle of the label's boundary.
@ LabelMiddleLeft
Middle left of the label's boundary.
@ LabelBottomRight
Bottom right corner of the label's boundary.
@ LabelMiddleRight
Middle right of the label's boundary.
@ LabelTopMiddle
Top middle of the label's boundary.
@ LabelTopLeft
Top left corner of the label's boundary.
@ LabelCentroid
The labe's centroid.
@ LabelTopRight
Top right corner of the label's boundary.
void setAnchorPoint(AnchorPoint anchor)
Sets the feature's anchor point position.
Property
Data definable properties.
bool enabled() const
Returns true if the the callout is enabled.
This class represents a coordinate reference system (CRS).
Abstract base class for curved geometry type.
Draws curved lines as callouts.
QgsCurvedLineCallout & operator=(const QgsCurvedLineCallout &)=delete
Orientation
Curve orientation.
@ Clockwise
Curve lines in a clockwise direction.
@ CounterClockwise
Curve lines in a counter-clockwise direction.
@ Automatic
Automatically choose most cartographically pleasing orientation based on label and callout arrangemen...
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
A geometry is the spatial representation of a feature.
A line symbol type, for rendering LineString and MultiLineString geometries.
Draws straight (right angled) lines as callouts.
QgsManhattanLineCallout & operator=(const QgsManhattanLineCallout &)=delete
Struct for storing maximum and minimum scales for measurements in map units.
The QgsMargins class defines the four margins of a rectangle.
A marker symbol type, for rendering Point and MultiPoint geometries.
A class to represent a 2D point.
Point geometry type, with support for z-dimension and m-values.
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
The class is used as a container of context for various read/write operations on other objects.
Contains information about the context of a rendering operation.
A simple direct line callout style.
void setMinimumLengthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the minimum callout length.
Qgis::RenderUnit offsetFromAnchorUnit() const
Returns the units for the offset from anchor point.
QgsSimpleLineCallout & operator=(const QgsSimpleLineCallout &)=delete
void setOffsetFromLabelUnit(Qgis::RenderUnit unit)
Sets the unit for the offset from label area distance.
double offsetFromLabel() const
Returns the offset distance from label area at which to end the line.
void setOffsetFromAnchorMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the offset from anchor.
double offsetFromAnchor() const
Returns the offset distance from the anchor point at which to start the line.
const QgsMapUnitScale & offsetFromAnchorMapUnitScale() const
Returns the map unit scale for the offset from anchor.
void setOffsetFromAnchor(double distance)
Sets the offset distance from the anchor point at which to start the line.
~QgsSimpleLineCallout() override
void setOffsetFromAnchorUnit(Qgis::RenderUnit unit)
Sets the unit for the offset from anchor distance.
void setMinimumLength(double length)
Sets the minimum length of callout lines.
const QgsMapUnitScale & minimumLengthMapUnitScale() const
Returns the map unit scale for the minimum callout length.
bool drawCalloutToAllParts() const
Returns true if callout lines should be drawn to all feature parts.
void setDrawCalloutToAllParts(bool drawToAllParts)
Sets whether callout lines should be drawn to all feature parts.
Qgis::RenderUnit offsetFromLabelUnit() const
Returns the units for the offset from label area.
void setOffsetFromLabelMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the offset from label area.
void setMinimumLengthUnit(Qgis::RenderUnit unit)
Sets the unit for the minimum length of callout lines.
void setOffsetFromLabel(double distance)
Sets the offset distance from label area at which to end the line.
const QgsMapUnitScale & offsetFromLabelMapUnitScale() const
Returns the map unit scale for the minimum callout length.
Qgis::RenderUnit minimumLengthUnit() const
Returns the units for the minimum length of callout lines.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.
record about vertex coordinates and index of anchor to which it is snapped