36   , mSize( QSize( 0, 0 ) )
 
   37   , mBackgroundColor( Qt::white )
 
   38   , mSelectionColor( Qt::yellow )
 
   39   , mFlags( 
Qgis::MapSettingsFlag::Antialiasing | 
Qgis::MapSettingsFlag::UseAdvancedEffects | 
Qgis::MapSettingsFlag::DrawLabeling | 
Qgis::MapSettingsFlag::DrawSelection )
 
   40   , mSegmentationTolerance( M_PI_2 / 90 )
 
   58   ext.
scale( ratio, center );
 
   64   QgsDebugMsgLevel( QStringLiteral( 
"Magnification factor: %1  dpi: %2  ratio: %3" ).arg( factor ).arg( 
mDpi ).arg( ratio ), 3 );
 
  152     static const double MIN_PROPORTION = 1e-12;
 
  153     if ( xRange < MIN_PROPORTION || yRange < MIN_PROPORTION )
 
  160   const double myHeight = 
mSize.height();
 
  161   const double myWidth = 
mSize.width();
 
  163   if ( !myWidth || !myHeight )
 
  170   const double mapUnitsPerPixelY = 
mExtent.
height() / myHeight;
 
  171   const double mapUnitsPerPixelX = 
mExtent.
width() / myWidth;
 
  172   mMapUnitsPerPixel = mapUnitsPerPixelY > mapUnitsPerPixelX ? mapUnitsPerPixelY : mapUnitsPerPixelX;
 
  178   if ( mapUnitsPerPixelY > mapUnitsPerPixelX )
 
  215     dxmin = std::min( p1.
x(), std::min( p2.
x(), std::min( p3.
x(), p4.
x() ) ) );
 
  216     dymin = std::min( p1.
y(), std::min( p2.
y(), std::min( p3.
y(), p4.
y() ) ) );
 
  217     dxmax = std::max( p1.
x(), std::max( p2.
x(), std::max( p3.
x(), p4.
x() ) ) );
 
  218     dymax = std::max( p1.
y(), std::max( p2.
y(), std::max( p3.
y(), p4.
y() ) ) );
 
  290   return _qgis_listQPointerToIDs( 
mLayers );
 
  296   return _qgis_listQPointerToRaw( 
mLayers );
 
  302   auto filteredList = 
layers;
 
  303   filteredList.erase( std::remove_if( filteredList.begin(), filteredList.end(),
 
  306     return !layer || !layer->isSpatial();
 
  307   } ), filteredList.end() );
 
  309   mLayers = _qgis_listRawToQPointer( filteredList );
 
  359     mFlags &= ~( 
static_cast< int >( flag ) );
 
  369   return mFlags.testFlag( flag );
 
  419   poly << m2p.
toMapCoordinates( 
static_cast<double>( sz.width() + buffer ), 
static_cast<double>( sz.height() + buffer ) ).
toQPointF();
 
  438   if ( !mHasTransformContext )
 
  439     QgsDebugMsgLevel( QStringLiteral( 
"No QgsCoordinateTransformContext context set for transform" ), 4 );
 
  449   mHasTransformContext = 
true;
 
  467   const double scaledWidthInInches = outputWidthInInches * 
scale;
 
  473     QgsRectangle ext( center.
x() - delta, center.
y() - delta, center.
x() + delta, center.
y() + delta );
 
  484     const double delta = 0.5 * scaledWidthInInches * conversionFactor;
 
  485     return QgsRectangle( center.
x() - delta, center.
y() - delta, center.
x() + delta, center.
y() + delta );
 
  556       point = ct.
transform( point, Qgis::TransformDirection::Forward );
 
  568   double x = point.
x();
 
  569   double y = point.
y();
 
  570   double z = point.
z();
 
  571   const double m = point.
m();
 
  594       rect = ct.
transform( rect, Qgis::TransformDirection::Forward );
 
  611       point = ct.
transform( point, Qgis::TransformDirection::Reverse );
 
  623   double x = point.
x();
 
  624   double y = point.
y();
 
  625   double z = point.
z();
 
  626   const double m = point.
m();
 
  649       rect = ct.
transform( rect, Qgis::TransformDirection::Reverse );
 
  671   const auto constMLayers = 
mLayers;
 
  679       if ( lyr->extent().isNull() )
 
  704       const double padFactor = 1e-8;
 
  724   const QDomNode srsNode = node.namedItem( QStringLiteral( 
"destinationsrs" ) );
 
  725   if ( !srsNode.isNull() )
 
  732   const QDomNode extentNode = node.namedItem( QStringLiteral( 
"extent" ) );
 
  737   const QDomNode rotationNode = node.namedItem( QStringLiteral( 
"rotation" ) );
 
  738   const QString rotationVal = rotationNode.toElement().text();
 
  739   if ( ! rotationVal.isEmpty() )
 
  741     const double rot = rotationVal.toDouble();
 
  746   const QDomElement renderMapTileElem = node.firstChildElement( QStringLiteral( 
"rendermaptile" ) );
 
  747   if ( !renderMapTileElem.isNull() )
 
  764   QDomElement rotNode = doc.createElement( QStringLiteral( 
"rotation" ) );
 
  768   node.appendChild( rotNode );
 
  773     QDomElement srsNode = doc.createElement( QStringLiteral( 
"destinationsrs" ) );
 
  774     node.appendChild( srsNode );
 
  779   QDomElement renderMapTileElem = doc.createElement( QStringLiteral( 
"rendermaptile" ) );
 
  781   renderMapTileElem.appendChild( renderMapTileText );
 
  782   node.appendChild( renderMapTileElem );
 
  797   mClippingRegions.append( region );
 
  802   mClippingRegions = regions;
 
  807   return mClippingRegions;
 
  812   mRenderedFeatureHandlers.append( handler );
 
  817   return mRenderedFeatureHandlers;
 
The Qgis class provides global constants for use throughout the application.
MapSettingsFlag
Flags which adjust the way maps are rendered.
@ RenderMapTile
Draw map such that there are no problems between adjacent tiles.
This class represents a coordinate reference system (CRS).
bool isValid() const
Returns whether this CRS is correctly initialized and usable.
bool readXml(const QDomNode &node)
Restores state from the given DOM node.
QString authid() const
Returns the authority identifier for the CRS.
bool writeXml(QDomNode &node, QDomDocument &doc) const
Stores state to the given Dom node in the given document.
Q_GADGET QgsUnitTypes::DistanceUnit mapUnits
Contains information about the context in which a coordinate transform is executed.
Custom exception class for Coordinate Reference System related exceptions.
QgsRange which stores a range of double values.
static EllipsoidParameters ellipsoidParameters(const QString &ellipsoid)
Returns the parameters for the specified ellipsoid.
A geometry is the spatial representation of a feature.
A map clipping region (in map coordinates and CRS).
Base class for all map layer types.
QgsCoordinateReferenceSystem crs
QSize deviceOutputSize() const
Returns the device output size of the map render.
QgsVectorSimplifyMethod mSimplifyMethod
void addClippingRegion(const QgsMapClippingRegion ®ion)
Adds a new clipping region to the map settings.
void writeXml(QDomNode &node, QDomDocument &doc)
QgsPointXY layerToMapCoordinates(const QgsMapLayer *layer, QgsPointXY point) const
transform point coordinates from layer's CRS to output CRS
QgsRectangle mVisibleExtent
Extent with some additional white space that matches the output aspect ratio.
QPolygonF visiblePolygon() const
Returns the visible area as a polygon (may be rotated)
void addRenderedFeatureHandler(QgsRenderedFeatureHandlerInterface *handler)
Adds a rendered feature handler to use while rendering the map settings.
void setLayers(const QList< QgsMapLayer * > &layers)
Sets the list of layers to render in the map.
double scale() const
Returns the calculated map scale.
void setFlags(Qgis::MapSettingsFlags flags)
Sets combination of flags that will be used for rendering.
Qgis::MapSettingsFlags mFlags
QgsCoordinateTransform layerTransform(const QgsMapLayer *layer) const
Returns the coordinate transform from layer's CRS to destination CRS.
QgsRectangle layerExtentToOutputExtent(const QgsMapLayer *layer, QgsRectangle extent) const
transform bounding box from layer's CRS to output CRS
QgsDoubleRange zRange() const
Returns the range of z-values which will be visible in the map.
bool setEllipsoid(const QString &ellipsoid)
Sets the ellipsoid by its acronym.
void setDpiTarget(double dpi)
Sets the target dpi (dots per inch) to be taken into consideration when rendering.
QStringList layerIds() const
Returns the list of layer IDs which will be rendered in the map.
double magnificationFactor() const
Returns the magnification factor.
QgsGeometry labelBoundaryGeometry() const
Returns the label boundary geometry, which restricts where in the rendered map labels are permitted t...
QList< QgsRenderedFeatureHandlerInterface * > renderedFeatureHandlers() const
Returns the list of rendered feature handlers to use while rendering the map settings.
void setDevicePixelRatio(float dpr)
Sets the device pixel ratio.
QString mEllipsoid
ellipsoid acronym (from table tbl_ellipsoids)
void setZRange(const QgsDoubleRange &range)
Sets the range of z-values which will be visible in the map.
double dpiTarget() const
Returns the target DPI (dots per inch) to be taken into consideration when rendering.
bool mValid
Whether the actual settings are valid (set in updateDerived())
void setOutputDpi(double dpi)
Sets the dpi (dots per inch) used for conversion between real world units (e.g.
double mapUnitsPerPixel() const
Returns the distance in geographical coordinates that equals to one pixel in the map.
float devicePixelRatio() const
Returns the device pixel ratio.
QSize outputSize() const
Returns the size of the resulting map image, in pixels.
QgsRectangle extent() const
Returns geographical coordinates of the rectangle that should be rendered.
QMap< QString, QString > mLayerStyleOverrides
QgsGeometry mLabelBoundaryGeometry
void setLayerStyleOverrides(const QMap< QString, QString > &overrides)
Sets the map of map layer style overrides (key: layer ID, value: style name) where a different style ...
QgsCoordinateTransformContext mTransformContext
void setExtent(const QgsRectangle &rect, bool magnified=true)
Sets the coordinates of the rectangle which should be rendered.
void setClippingRegions(const QList< QgsMapClippingRegion > ®ions)
Sets the list of clipping regions to apply to the map.
double layerToMapUnits(const QgsMapLayer *layer, const QgsRectangle &referenceExtent=QgsRectangle()) const
Computes an estimated conversion factor between layer and map units: layerUnits * layerToMapUnits = m...
double extentBuffer() const
Returns the buffer in map units to use around the visible extent for rendering symbols whose correspo...
QgsScaleCalculator mScaleCalculator
Qgis::MapSettingsFlags flags() const
Returns combination of flags used for rendering.
QgsUnitTypes::DistanceUnit mapUnits() const
Returns the units of the map's geographical coordinates - used for scale calculation.
const QgsMapToPixel & mapToPixel() const
void setExtentBuffer(double buffer)
Sets the buffer in map units to use around the visible extent for rendering symbols whose correspondi...
QgsRectangle visibleExtent() const
Returns the actual extent derived from requested extent that takes output image size into account.
QgsRectangle outputExtentToLayerExtent(const QgsMapLayer *layer, QgsRectangle extent) const
transform bounding box from output CRS to layer's CRS
QgsRectangle fullExtent() const
returns current extent of layer set
void setTransformContext(const QgsCoordinateTransformContext &context)
Sets the coordinate transform context, which stores various information regarding which datum transfo...
void setRotation(double rotation)
Sets the rotation of the resulting map image, in degrees clockwise.
double computeScaleForExtent(const QgsRectangle &extent) const
Compute the scale that corresponds to the specified extent.
QString ellipsoid() const
Returns ellipsoid's acronym.
double mMagnificationFactor
QList< QgsMapLayer * > layers() const
Returns the list of layers which will be rendered in the map.
QgsCoordinateReferenceSystem mDestCRS
double outputDpi() const
Returns the DPI (dots per inch) used for conversion between real world units (e.g.
void setLabelBoundaryGeometry(const QgsGeometry &boundary)
Sets the label boundary geometry, which restricts where in the rendered map labels are permitted to b...
QgsMapToPixel mMapToPixel
bool testFlag(Qgis::MapSettingsFlag flag) const
Check whether a particular flag is enabled.
QMap< QString, QString > layerStyleOverrides() const
Returns the map of map layer style overrides (key: layer ID, value: style name) where a different sty...
double rotation() const
Returns the rotation of the resulting map image, in degrees clockwise.
QList< QgsMapClippingRegion > clippingRegions() const
Returns the list of clipping regions to apply to the map.
bool hasValidSettings() const
Check whether the map settings are valid and can be used for rendering.
QgsWeakMapLayerPointerList mLayers
list of layers to be rendered (stored as weak pointers)
void setOutputSize(QSize size)
Sets the size of the resulting map image, in pixels.
QgsPointXY mapToLayerCoordinates(const QgsMapLayer *layer, QgsPointXY point) const
transform point coordinates from output CRS to layer's CRS
QgsCoordinateReferenceSystem destinationCrs() const
Returns the destination coordinate reference system for the map render.
QPolygonF visiblePolygonWithBuffer() const
Returns the visible area as a polygon (may be rotated) with extent buffer included.
void setFlag(Qgis::MapSettingsFlag flag, bool on=true)
Enable or disable a particular flag (other flags are not affected)
void setDestinationCrs(const QgsCoordinateReferenceSystem &crs)
Sets the destination crs (coordinate reference system) for the map render.
void readXml(QDomNode &node)
QgsRectangle computeExtentForScale(const QgsPointXY ¢er, double scale) const
Compute the extent such that its center is at the specified position (mapped to the destinatonCrs) an...
void setMagnificationFactor(double factor, const QgsPointXY *center=nullptr)
Set the magnification factor.
QgsCoordinateTransformContext transformContext() const
Returns the coordinate transform context, which stores various information regarding which datum tran...
Perform transforms between map coordinates and device coordinates.
QgsPointXY toMapCoordinates(int x, int y) const
Transforms device coordinates to map (world) coordinates.
void setParameters(double mapUnitsPerPixel, double centerX, double centerY, int widthPixels, int heightPixels, double rotation)
Sets parameters for use in transforming coordinates.
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
A class to represent a 2D point.
QPointF toQPointF() const
Converts a point to a QPointF.
Point geometry type, with support for z-dimension and m-values.
A rectangle specified with double values.
QString toString(int precision=16) const
Returns a string representation of form xmin,ymin : xmax,ymax Coordinates will be truncated to the sp...
void scale(double scaleFactor, const QgsPointXY *c=nullptr)
Scale the rectangle around its center point.
double yMaximum() const SIP_HOLDGIL
Returns the y maximum value (top side of rectangle).
double xMaximum() const SIP_HOLDGIL
Returns the x maximum value (right side of rectangle).
double xMinimum() const SIP_HOLDGIL
Returns the x minimum value (left side of rectangle).
double yMinimum() const SIP_HOLDGIL
Returns the y minimum value (bottom side of rectangle).
QString asWktCoordinates() const
Returns a string representation of the rectangle in WKT format.
double height() const SIP_HOLDGIL
Returns the height of the rectangle.
void set(const QgsPointXY &p1, const QgsPointXY &p2, bool normalize=true)
Sets the rectangle from two QgsPoints.
void setMinimal() SIP_HOLDGIL
Set a rectangle so that min corner is at max and max corner is at min.
double width() const SIP_HOLDGIL
Returns the width of the rectangle.
void combineExtentWith(const QgsRectangle &rect)
Expands the rectangle so that it covers both the original rectangle and the given rectangle.
bool isEmpty() const
Returns true if the rectangle is empty.
bool isFinite() const
Returns true if the rectangle has finite boundaries.
QgsPointXY center() const SIP_HOLDGIL
Returns the center point of the rectangle.
An interface for classes which provider custom handlers for features rendered as part of a map render...
double calculate(const QgsRectangle &mapExtent, double canvasWidth) const
Calculate the scale denominator.
void setDpi(double dpi)
Sets the dpi (dots per inch) for the output resolution, to be used in scale calculations.
void setMapUnits(QgsUnitTypes::DistanceUnit mapUnits)
Set the map units.
QgsUnitTypes::DistanceUnit mapUnits() const
Returns current map units.
DistanceUnit
Units of distance.
@ DistanceDegrees
Degrees, for planar geographic CRS distance measurements.
@ DistanceUnknownUnit
Unknown distance unit.
@ DistanceFeet
Imperial feet.
static Q_INVOKABLE double fromUnitToUnitFactor(QgsUnitTypes::DistanceUnit fromUnit, QgsUnitTypes::DistanceUnit toUnit)
Returns the conversion factor between the specified distance units.
void setSimplifyHints(SimplifyHints simplifyHints)
Sets the simplification hints of the vector layer managed.
@ NoSimplification
No simplification can be applied.
static QDomElement writeRectangle(const QgsRectangle &rect, QDomDocument &doc, const QString &elementName=QStringLiteral("extent"))
Encodes a rectangle to a DOM element.
static QDomElement writeMapUnits(QgsUnitTypes::DistanceUnit units, QDomDocument &doc)
Encodes a distance unit to a DOM element.
static QgsRectangle readRectangle(const QDomElement &element)
QString qgsDoubleToString(double a, int precision=17)
Returns a string representation of a double.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
#define QgsDebugMsgLevel(str, level)
QPointer< QgsMapLayer > QgsWeakMapLayerPointer
Weak pointer for QgsMapLayer.
Q_GUI_EXPORT int qt_defaultDpiX()
const QgsCoordinateReferenceSystem & crs
Contains parameters for an ellipsoid.
bool valid
Whether ellipsoid parameters are valid.