QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
Go to the documentation of this file.
28 #define POINTS_TO_MM 2.83464567
29 #define INCH_TO_MM 25.4
32 : mFlags( DrawEditingInfo | UseAdvancedEffects | DrawSelection | UseRenderingOptimization )
45 , mPainter( rh.mPainter )
46 , mMaskPainter( rh.mMaskPainter )
47 , mCoordTransform( rh.mCoordTransform )
48 , mDistanceArea( rh.mDistanceArea )
49 , mExtent( rh.mExtent )
50 , mOriginalMapExtent( rh.mOriginalMapExtent )
51 , mMapToPixel( rh.mMapToPixel )
52 , mRenderingStopped( rh.mRenderingStopped )
53 , mScaleFactor( rh.mScaleFactor )
54 , mRendererScale( rh.mRendererScale )
55 , mLabelingEngine( rh.mLabelingEngine )
56 , mSelectionColor( rh.mSelectionColor )
57 , mVectorSimplifyMethod( rh.mVectorSimplifyMethod )
58 , mExpressionContext( rh.mExpressionContext )
59 , mGeometry( rh.mGeometry )
60 , mFeatureFilterProvider( rh.mFeatureFilterProvider ? rh.mFeatureFilterProvider->clone() : nullptr )
61 , mSegmentationTolerance( rh.mSegmentationTolerance )
62 , mSegmentationToleranceType( rh.mSegmentationToleranceType )
63 , mTransformContext( rh.mTransformContext )
64 , mPathResolver( rh.mPathResolver )
65 , mTextRenderFormat( rh.mTextRenderFormat )
66 , mRenderedFeatureHandlers( rh.mRenderedFeatureHandlers )
67 , mHasRenderedFeatureHandlers( rh.mHasRenderedFeatureHandlers )
68 , mCustomRenderingFlags( rh.mCustomRenderingFlags )
69 , mDisabledSymbolLayers()
70 , mClippingRegions( rh.mClippingRegions )
71 , mFeatureClipGeometry( rh.mFeatureClipGeometry )
72 , mTextureOrigin( rh.mTextureOrigin )
74 , mHasTransformContext( rh.mHasTransformContext )
82 mPainter = rh.mPainter;
83 mMaskPainter = rh.mMaskPainter;
84 mCoordTransform = rh.mCoordTransform;
86 mOriginalMapExtent = rh.mOriginalMapExtent;
87 mMapToPixel = rh.mMapToPixel;
88 mRenderingStopped = rh.mRenderingStopped;
89 mScaleFactor = rh.mScaleFactor;
90 mRendererScale = rh.mRendererScale;
91 mLabelingEngine = rh.mLabelingEngine;
92 mSelectionColor = rh.mSelectionColor;
93 mVectorSimplifyMethod = rh.mVectorSimplifyMethod;
94 mExpressionContext = rh.mExpressionContext;
95 mGeometry = rh.mGeometry;
96 mFeatureFilterProvider.reset( rh.mFeatureFilterProvider ? rh.mFeatureFilterProvider->clone() :
nullptr );
97 mSegmentationTolerance = rh.mSegmentationTolerance;
98 mSegmentationToleranceType = rh.mSegmentationToleranceType;
99 mDistanceArea = rh.mDistanceArea;
100 mTransformContext = rh.mTransformContext;
101 mPathResolver = rh.mPathResolver;
102 mTextRenderFormat = rh.mTextRenderFormat;
103 mRenderedFeatureHandlers = rh.mRenderedFeatureHandlers;
104 mHasRenderedFeatureHandlers = rh.mHasRenderedFeatureHandlers;
105 mCustomRenderingFlags = rh.mCustomRenderingFlags;
106 mClippingRegions = rh.mClippingRegions;
107 mFeatureClipGeometry = rh.mFeatureClipGeometry;
108 mTextureOrigin = rh.mTextureOrigin;
113 mHasTransformContext = rh.mHasTransformContext;
135 #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)
136 if (
painter &&
painter->renderHints() & QPainter::LosslessImageRendering )
152 #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)
160 if ( !mHasTransformContext )
161 QgsDebugMsgLevel( QStringLiteral(
"No QgsCoordinateTransformContext context set for transform" ), 4 );
163 return mTransformContext;
168 mTransformContext = context;
170 mHasTransformContext =
true;
194 return mFlags.testFlag( flag );
305 mFeatureFilterProvider.reset( ffp->
clone() );
309 mFeatureFilterProvider.reset(
nullptr );
315 return mFeatureFilterProvider.get();
320 double conversionFactor = 1.0;
324 conversionFactor = mScaleFactor;
347 conversionFactor = 1.0 / mup;
351 conversionFactor = 1.0;
356 conversionFactor = 1.0;
362 conversionFactor = 1.0;
366 double convertedSize = size * conversionFactor;
372 convertedSize = std::max( convertedSize, scale.
minSizeMM * mScaleFactor );
374 convertedSize = std::min( convertedSize, scale.
maxSizeMM * mScaleFactor );
377 return convertedSize;
395 double minSizeMU = std::numeric_limits<double>::lowest();
398 minSizeMU = scale.
minSizeMM * mScaleFactor * mup;
402 minSizeMU = std::max( minSizeMU, size * ( mRendererScale / scale.
minScale ) );
404 size = std::max( size, minSizeMU );
406 double maxSizeMU = std::numeric_limits<double>::max();
409 maxSizeMU = scale.
maxSizeMM * mScaleFactor * mup;
413 maxSizeMU = std::min( maxSizeMU, size * ( mRendererScale / scale.
maxScale ) );
415 size = std::min( size, maxSizeMU );
421 return size * mScaleFactor * mup;
429 return size * mScaleFactor * mup *
INCH_TO_MM;
448 switch ( outputUnit )
456 return sizeInMapUnits;
460 return sizeInMapUnits / ( mScaleFactor * mup );
464 return sizeInMapUnits / ( mScaleFactor * mup /
POINTS_TO_MM );
468 return sizeInMapUnits / ( mScaleFactor * mup *
INCH_TO_MM );
472 return sizeInMapUnits / mup;
503 pointCenter = mCoordTransform.
transform( pointCenter );
522 return mRenderedFeatureHandlers;
527 return mClippingRegions;
532 return mFeatureClipGeometry;
542 return mTextureOrigin;
547 mTextureOrigin = origin;
QList< QgsRenderedFeatureHandlerInterface * > renderedFeatureHandlers() const
Returns the list of rendered feature handlers to use while rendering map layers.
@ NoSimplification
No simplification can be applied.
@ DrawEditingInfo
Enable drawing of vertex markers for layers in editing mode.
bool testFlag(Flag flag) const
Check whether a particular flag is enabled.
double convertToPainterUnits(double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale()) const
Converts a size from the specified units to painter units (pixels).
void setPainterFlagsUsingContext(QPainter *painter=nullptr) const
Sets relevant flags on a destination painter, using the flags and settings currently defined for the ...
Contains information about the context in which a coordinate transform is executed.
Q_GADGET QgsUnitTypes::DistanceUnit mapUnits
RenderUnit
Rendering size units.
QgsGeometry featureClipGeometry() const
Returns the geometry to use to clip features at render time.
double mapUnitsPerPixel() const
Returns current map units per pixel.
QgsRenderContext::TextRenderFormat textRenderFormat() const
Returns the text render format, which dictates how text is rendered (e.g.
@ Render3DMap
Render is for a 3D map.
static QgsRenderContext fromMapSettings(const QgsMapSettings &mapSettings)
create initialized QgsRenderContext instance from given QgsMapSettings
double extentBuffer() const
Returns the buffer in map units to use around the visible extent for rendering symbols whose correspo...
void setFeatureClipGeometry(const QgsGeometry &geometry)
Sets a geometry to use to clip features at render time.
@ DistanceUnknownUnit
Unknown distance unit.
@ UseRenderingOptimization
Enable vector simplification and other rendering optimizations.
#define QgsDebugMsgLevel(str, level)
void setSegmentationTolerance(double tolerance)
Sets the segmentation tolerance applied when rendering curved geometries.
bool drawEditingInformation() const
Returns true if edit markers should be drawn during the render operation.
bool isTemporal() const
Returns true if the object's temporal range is enabled, and the object will be filtered when renderin...
QgsPointXY center() const SIP_HOLDGIL
Returns the center point of the rectangle.
@ UseAdvancedEffects
Enable layer opacity and blending effects.
bool showSelection() const
Returns true if vector selections should be shown in the rendered map.
void setFlag(Flag flag, bool on=true)
Enable or disable a particular flag (other flags are not affected)
void setIsTemporal(bool enabled)
Sets whether the temporal range is enabled (i.e.
void setPainter(QPainter *p)
Sets the destination QPainter for the render operation.
@ RenderPoints
Points (e.g., for font sizes)
void setShowSelection(bool showSelection)
Sets whether vector selections should be shown in the rendered map.
QString ellipsoid() const
Returns ellipsoid's acronym.
@ RenderPercentage
Percentage of another measurement (e.g., canvas size, feature size)
double convertToMapUnits(double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale()) const
Converts a size from the specified units to map units.
const QgsDateTimeRange & temporalRange() const
Returns the datetime range for the object.
const QgsVectorSimplifyMethod & simplifyMethod() const
Returns the simplification settings to use when rendering vector layers.
QgsCoordinateReferenceSystem sourceCrs() const
Returns the source spatial reference system.
Contains information about the context of a rendering operation.
@ RenderMillimeters
Millimeters.
double minSizeMM
The minimum size in millimeters, or 0.0 if unset.
QVariantMap customRenderingFlags() const
Gets custom rendering flags.
void setSimplifyHints(SimplifyHints simplifyHints)
Sets the simplification hints of the vector layer managed.
@ RenderPartialOutput
Whether to make extra effort to update map image with partially rendered layers (better for interacti...
const QgsRectangle & extent() const
When rendering a map layer, calling this method returns the "clipping" extent for the layer (in the l...
@ DistanceKilometers
Kilometers.
void setSegmentationToleranceType(QgsAbstractGeometry::SegmentationToleranceType type)
Sets segmentation tolerance type (maximum angle or maximum difference between curve and approximation...
A rectangle specified with double values.
double measureLineProjected(const QgsPointXY &p1, double distance=1, double azimuth=M_PI_2, QgsPointXY *projectedPoint=nullptr) const
Calculates the distance from one point with distance in meters and azimuth (direction) When the sourc...
@ UseAdvancedEffects
Enable layer opacity and blending effects.
@ ForceVectorOutput
Vector graphics should not be cached and drawn as raster images.
@ ForceVectorOutput
Vector graphics should not be cached and drawn as raster images.
static Q_INVOKABLE double fromUnitToUnitFactor(QgsUnitTypes::DistanceUnit fromUnit, QgsUnitTypes::DistanceUnit toUnit)
Returns the conversion factor between the specified distance units.
void setFlags(QgsRenderContext::Flags flags)
Set combination of flags that will be used for rendering.
bool setEllipsoid(const QString &ellipsoid)
Sets the ellipsoid by its acronym.
@ DrawSelection
Whether vector selections should be shown in the rendered map.
bool useAdvancedEffects() const
Returns true if advanced effects such as blend modes such be used.
bool forceVectorOutput() const
Returns true if rendering operations should use vector operations instead of any faster raster shortc...
QgsAbstractGeometry::SegmentationToleranceType segmentationToleranceType() const
Gets segmentation tolerance type (maximum angle or maximum difference between curve and approximation...
QgsCoordinateTransformContext transformContext() const
Returns the coordinate transform context, which stores various information regarding which datum tran...
@ DistanceDegrees
Degrees, for planar geographic CRS distance measurements.
@ RenderBlocking
Render and load remote sources in the same thread to ensure rendering remote sources (svg and images)...
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
void setPathResolver(const QgsPathResolver &resolver)
Sets the path resolver for conversion between relative and absolute paths during rendering operations...
const QgsFeatureFilterProvider * featureFilterProvider() const
Gets the filter feature provider used for additional filtering of rendered features.
void setExtent(const QgsRectangle &extent)
When rendering a map layer, calling this method sets the "clipping" extent for the layer (in the laye...
void setCoordinateTransform(const QgsCoordinateTransform &t)
Sets the current coordinate transform for the context.
void setVectorSimplifyMethod(const QgsVectorSimplifyMethod &simplifyMethod)
Sets the simplification setting to use when rendering vector layers.
void setRenderingStopped(bool stopped)
Sets whether the rendering operation has been stopped and any ongoing rendering should be canceled im...
@ Antialiasing
Enable anti-aliasing for map rendering.
@ LosslessImageRendering
Render images losslessly whenever possible, instead of the default lossy jpeg rendering used for some...
~QgsRenderContext() override
void setMapToPixel(const QgsMapToPixel &mtp)
Sets the context's map to pixel transform, which transforms between map coordinates and device coordi...
@ DistanceFeet
Imperial feet.
@ DrawSymbolBounds
Draw bounds of symbols (for debugging/testing)
@ DrawSymbolBounds
Draw bounds of symbols (for debugging/testing)
void setFeatureFilterProvider(const QgsFeatureFilterProvider *ffp)
Set a filter feature provider used for additional filtering of rendered features.
@ RenderMapTile
Draw map such that there are no problems between adjacent tiles.
QgsRenderContext & operator=(const QgsRenderContext &rh)
double scale() const
Returns the calculated map scale.
Struct for storing maximum and minimum scales for measurements in map units.
void setSourceCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets source spatial reference system crs.
@ RenderMapTile
Draw map such that there are no problems between adjacent tiles.
const QgsExpressionContext & expressionContext() const
Gets the expression context.
Flag
Enumeration of flags that affect rendering operations.
QColor selectionColor() const
Gets color that is used for drawing of selected vector features.
void setSelectionColor(const QColor &color)
Sets the color to use when rendering selected features.
@ RenderPreviewJob
Render is a 'canvas preview' render, and shortcuts should be taken to ensure fast rendering.
double segmentationTolerance() const
Gets the segmentation tolerance applied when rendering curved geometries.
void setRendererScale(double scale)
Sets the renderer map scale.
void setUseRenderingOptimization(bool enabled)
Sets whether the rendering optimization (geometry simplification) should be executed.
void setTextRenderFormat(TextRenderFormat format)
Sets the text render format, which dictates how text is rendered (e.g.
A class to represent a 2D point.
void setForceVectorOutput(bool force)
Sets whether rendering operations should use vector operations instead of any faster raster shortcuts...
QgsCoordinateReferenceSystem destinationCrs() const
returns CRS of destination coordinate reference system
void setTransformContext(const QgsCoordinateTransformContext &context)
Sets the context's coordinate transform context, which stores various information regarding which dat...
@ LosslessImageRendering
Render images losslessly whenever possible, instead of the default lossy jpeg rendering used for some...
@ RenderPartialOutput
Whether to make extra effort to update map image with partially rendered layers (better for interacti...
@ UseRenderingOptimization
Enable vector simplification and other rendering optimizations.
QPointF textureOrigin() const
Returns the texture origin, which should be used as a brush transform when rendering using QBrush obj...
bool maxSizeMMEnabled
Whether the maximum size in mm should be respected.
bool testFlag(Flag flag) const
Check whether a particular flag is enabled.
const QgsAbstractGeometry * geometry() const
Returns pointer to the unsegmentized geometry.
void setDrawEditingInformation(bool b)
Sets whether edit markers should be drawn during the render operation.
A geometry is the spatial representation of a feature.
@ DistanceMillimeters
Millimeters.
double maxSizeMM
The maximum size in millimeters, or 0.0 if unset.
@ DistanceCentimeters
Centimeters.
QgsCoordinateTransformContext transformContext() const
Returns the context's coordinate transform context, which stores various information regarding which ...
@ DrawEditingInfo
Enable drawing of vertex markers for layers in editing mode.
virtual QgsFeatureFilterProvider * clone() const =0
Create a clone of the feature filter provider.
static QgsRenderContext fromQPainter(QPainter *painter)
Creates a default render context given a pixel based QPainter destination.
const QgsPathResolver & pathResolver() const
Returns the path resolver for conversion between relative and absolute paths during rendering operati...
double computeMapUnitsPerPixel(const QgsRenderContext &c) const
Computes a map units per pixel scaling factor, respecting the minimum and maximum scales set for the ...
@ RenderMetersInMapUnits
Meters value as Map units.
@ RenderUnknownUnit
Mixed or unknown units.
@ DistanceYards
Imperial yards.
QList< QgsRenderedFeatureHandlerInterface * > renderedFeatureHandlers() const
Returns the list of rendered feature handlers to use while rendering the map settings.
@ Render3DMap
Render is for a 3D map.
Abstract interface for use by classes that filter the features of a layer.
QList< QgsMapClippingRegion > clippingRegions() const
Returns the list of clipping regions to apply during the render.
double convertMetersToMapUnits(double meters) const
Convert meter distances to active MapUnit values for QgsUnitTypes::RenderMetersInMapUnits.
@ Antialiasing
Use antialiasing while drawing.
@ DistanceMiles
Terrestrial miles.
void setTemporalRange(const QgsDateTimeRange &range)
Sets the temporal range for the object.
void setExpressionContext(const QgsExpressionContext &context)
Sets the expression context.
QString ellipsoidAcronym() const
Returns the ellipsoid acronym for the ellipsoid used by the CRS.
@ DistanceNauticalMiles
Nautical miles.
@ RenderBlocking
Render and load remote sources in the same thread to ensure rendering remote sources (svg and images)...
QList< QgsMapClippingRegion > clippingRegions() const
Returns the list of clipping regions to apply to the map.
void setUseAdvancedEffects(bool enabled)
Used to enable or disable advanced effects such as blend modes.
void grow(double delta)
Grows the rectangle in place by the specified amount.
double minScale
The minimum scale, or 0.0 if unset.
double outputDpi() const
Returns DPI used for conversion between real world units (e.g.
QPainter * painter()
Returns the destination QPainter for the render operation.
double maxScale
The maximum scale, or 0.0 if unset.
The QgsMapSettings class contains configuration for rendering of the map.
QgsRectangle visibleExtent() const
Returns the actual extent derived from requested extent that takes takes output image size into accou...
bool minSizeMMEnabled
Whether the minimum size in mm should be respected.
void setTextureOrigin(const QPointF &origin)
Sets the texture origin, which should be used as a brush transform when rendering using QBrush object...
@ RenderPreviewJob
Render is a 'canvas preview' render, and shortcuts should be taken to ensure fast rendering.
bool useRenderingOptimization() const
Returns true if the rendering optimization (geometry simplification) can be executed.
const QgsMapToPixel & mapToPixel() const
@ RenderMapUnits
Map units.
bool isNull() const
Test if the rectangle is null (all coordinates zero or after call to setMinimal()).
Base class for objects with an associated (optional) temporal range.
void setScaleFactor(double factor)
Sets the scaling factor for the render to convert painter units to physical sizes.
@ DrawSelection
Whether vector selections should be shown in the rendered map.
double convertFromMapUnits(double sizeInMapUnits, QgsUnitTypes::RenderUnit outputUnit) const
Converts a size from map units to the specified units.
void setMapExtent(const QgsRectangle &extent)
Sets the original extent of the map being rendered.
Flags flags() const
Returns combination of flags used for rendering.