QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
Go to the documentation of this file.
17 #ifndef QGSLAYOUTITEMMAP_H
18 #define QGSLAYOUTITEMMAP_H
20 #include "qgis_core.h"
62 void setEnabled(
bool enabled );
83 bool forceLabelsInsideFeature()
const;
90 void setForceLabelsInsideFeature(
bool forceInside );
98 bool restrictToLayers()
const;
106 void setRestrictToLayers(
bool enabled );
116 QList< QgsMapLayer * > layersToClip()
const;
126 void setLayersToClip(
const QList< QgsMapLayer * > &layers );
133 bool writeXml( QDomElement &element, QDomDocument &document,
const QgsReadWriteContext &context )
const;
140 bool readXml(
const QDomElement &element,
const QDomDocument &doc,
const QgsReadWriteContext &context );
150 void layersAboutToBeRemoved(
const QList<QgsMapLayer *> &layers );
155 bool mClipToAtlasFeature =
false;
156 bool mRestrictToLayers =
false;
157 QList< QgsMapLayerRef > mLayersToClip;
159 bool mForceLabelsInsideFeature =
false;
186 bool isActive()
const;
193 bool enabled()
const;
200 void setEnabled(
bool enabled );
261 bool forceLabelsInsideClipPath()
const;
268 void setForceLabelsInsideClipPath(
bool forceInside );
275 bool writeXml( QDomElement &element, QDomDocument &document,
const QgsReadWriteContext &context )
const;
283 bool readXml(
const QDomElement &element,
const QDomDocument &doc,
const QgsReadWriteContext &context );
289 void finalizeRestoreFromXml();
301 bool mEnabled =
false;
303 bool mForceLabelsInsideClipPath =
false;
305 QPointer< QgsLayoutItem > mClipPathSource;
306 QString mClipPathUuid;
353 ShowPartialLabels = 1 << 0,
354 ShowUnplacedLabels = 1 << 1,
356 Q_DECLARE_FLAGS( MapItemFlags, MapItemFlag )
364 int type()
const override;
365 QIcon
icon()
const override;
366 QgsLayoutItem::Flags
itemFlags()
const override;
373 QgsLayoutItemMap::MapItemFlags mapFlags()
const;
380 void setMapFlags( QgsLayoutItemMap::MapItemFlags flags );
398 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget )
override;
400 void startLayeredExport() override;
401 void stopLayeredExport() override;
402 bool nextExportPart() override;
403 ExportLayerBehavior exportLayerBehavior() const override;
404 QgsLayoutItem::ExportLayerDetail exportLayerDetails() const override;
412 double scale() const;
421 void setScale(
double scale,
bool forceUpdate = true );
456 QPolygonF visibleExtentPolygon() const;
513 QList<QgsMapLayer *> layers()
const;
521 void setLayers(
const QList<QgsMapLayer *> &layers );
545 void setLayerStyleOverrides(
const QMap<QString, QString> &overrides );
550 void storeCurrentLayerStyles();
567 void setFollowVisibilityPreset(
bool follow );
584 void setFollowVisibilityPresetName(
const QString &name );
589 void zoomContent(
double factor, QPointF point )
override;
593 bool containsWmsLayer()
const;
604 void setMapRotation(
double rotation );
643 void setAtlasDriven(
bool enabled );
747 double mapUnitsToLayoutUnits()
const;
838 QTransform layoutToMapCoordsTransform()
const;
865 QRectF boundingRect()
const override;
868 QPolygonF transformedMapPolygon()
const;
871 QPointF mapToItemCoords( QPointF mapCoords )
const;
920 void updateBoundingRect();
925 void layersAboutToBeRemoved(
const QList<QgsMapLayer *> &layers );
927 void painterJobFinished();
931 void mapThemeChanged(
const QString &theme );
934 void currentMapThemeRenamed(
const QString &theme,
const QString &newTheme );
937 void recreateCachedImageInBackground();
939 void updateAtlasFeature();
942 QgsLayoutItemMap::MapItemFlags mMapFlags = QgsLayoutItemMap::MapItemFlags();
947 std::unique_ptr< QgsLayoutItemMapGridStack > mGridStack;
948 std::unique_ptr< QgsLayoutItemMapOverviewStack > mOverviewStack;
970 std::unique_ptr< QImage > mCacheFinalImage;
971 std::unique_ptr< QImage > mCacheRenderingImage;
972 bool mUpdatesEnabled =
true;
975 bool mCacheInvalidated =
true;
978 int mNumCachedLayers;
981 bool mDrawing =
false;
983 QTimer *mBackgroundUpdateTimer =
nullptr;
984 double mPreviewScaleFactor = 0;
986 bool mDrawingPreview =
false;
989 double mXOffset = 0.0;
991 double mYOffset = 0.0;
993 double mLastRenderedImageOffsetX = 0.0;
994 double mLastRenderedImageOffsetY = 0.0;
997 double mMapRotation = 0;
1003 double mEvaluatedMapRotation = 0;
1006 bool mKeepLayerSet =
false;
1009 QList< QgsMapLayerRef > mLayers;
1011 bool mKeepLayerStyles =
false;
1013 QMap<QString, QString> mLayerStyleOverrides;
1016 mutable QString mCachedLayerStyleOverridesPresetName;
1018 mutable QMap<QString, QString> mCachedPresetLayerStyleOverrides;
1025 bool mFollowVisibilityPreset =
false;
1031 QString mFollowVisibilityPresetName;
1034 QString mLastEvaluatedThemeName;
1043 void drawMap( QPainter *painter,
const QgsRectangle &extent, QSizeF size,
double dpi );
1046 void connectUpdateSlot();
1049 void syncLayerSet();
1061 QList< QgsLabelBlockingRegion > createLabelBlockingRegions(
const QgsMapSettings &mapSettings )
const;
1064 QRectF mCurrentRectangle;
1066 bool mDrawAnnotations =
true;
1069 bool mAtlasDriven =
false;
1073 double mAtlasMargin = 0.10;
1075 std::unique_ptr< QPainter > mPainter;
1076 std::unique_ptr< QgsMapRendererCustomPainterJob > mPainterJob;
1077 bool mPainterCancelWait =
false;
1082 QStringList mBlockingLabelItemUuids;
1083 QList< QPointer< QgsLayoutItem > > mBlockingLabelItems;
1088 QList< QgsRenderedFeatureHandlerInterface * > mRenderedFeatureHandlers;
1090 std::unique_ptr< QgsMapRendererStagedRenderJob > mStagedRendererJob;
1095 void updateToolTip();
1100 QMap<QString, QString> layerStyleOverridesToRender(
const QgsExpressionContext &context )
const;
1106 void mapPolygon(
const QgsRectangle &extent, QPolygonF &poly )
const;
1113 void transformShift(
double &xShift,
double &yShift )
const;
1115 void drawAnnotations( QPainter *painter );
1117 QPointF layoutMapPosForItem(
const QgsAnnotation *item )
const;
1119 void drawMapFrame( QPainter *p );
1120 void drawMapBackground( QPainter *p );
1136 bool shouldDrawPart( PartType part )
const;
1138 PartType mCurrentExportPart = NotLayered;
1139 QStringList mExportThemes;
1140 QStringList::iterator mExportThemeIt;
1151 void refreshLabelMargin(
bool updateItem );
1155 void createStagedRenderJob(
const QgsRectangle &extent,
const QSizeF size,
double dpi );
1157 QPolygonF calculateVisibleExtentPolygon(
bool includeClipping )
const;
1162 friend class TestQgsLayoutMap;
1164 friend class QgsGeoPdfRenderedFeatureHandler;
1170 #endif //QGSLAYOUTITEMMAP_H
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
An individual grid which is drawn above the map content in a QgsLayoutItemMap.
QgsLayoutItemMapOverviewStack * overviews()
Returns the map item's overview stack, which is used to control how overviews are drawn over the map'...
A map clipping region (in map coordinates and CRS).
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
QgsLayoutItemMapGridStack * grids()
Returns the map item's grid stack, which is used to control how grids are drawn over the map's conten...
The class is used as a container of context for various read/write operations on other objects.
bool keepLayerStyles() const
Returns whether current styles of layers should be overridden by previously stored styles.
QMap< QString, QString > layerStyleOverrides() const
Returns stored overrides of styles for layers.
AtlasScalingMode atlasScalingMode() const
Returns the current atlas scaling mode.
virtual QIcon icon() const
Returns the item's icon.
void extentChanged()
Emitted when the map's extent changes.
QgsLayoutItemMapAtlasClippingSettings * atlasClippingSettings()
Returns the map's atlas clipping settings.
const QgsCoordinateReferenceSystem & crs
void layerStyleOverridesChanged()
Emitted when layer style overrides are changed...
virtual void finalizeRestoreFromXml()
Called after all pending items have been restored from XML.
Contains settings and helpers relating to a render of a QgsLayoutItem.
bool atlasDriven() const
Returns whether the map extent is set to follow the current atlas feature.
Contains information about the context of a rendering operation.
AtlasScalingMode
Scaling modes used for the serial rendering (atlas)
An interface for classes which can visit style entity (e.g.
virtual void refreshDataDefinedProperty(QgsLayoutObject::DataDefinedProperty property=QgsLayoutObject::AllProperties)
Refreshes a data defined property for the item by reevaluating the property's value and redrawing the...
virtual Q_DECL_DEPRECATED int numberExportLayers() const
Returns the number of layers that this item requires for exporting during layered exports (e....
QgsLayoutItemMapItemClipPathSettings * itemClippingSettings()
Returns the map's item based clip path settings.
bool drawAnnotations() const
Returns whether annotations are drawn within the map.
bool followVisibilityPreset() const
Returns whether the map should follow a map theme.
void preparedForAtlas()
Emitted when the map has been prepared for atlas rendering, just before actual rendering.
A rectangle specified with double values.
Contains settings relating to clipping a layout map by another layout item.
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
An interface for classes which provider custom handlers for features rendered as part of a map render...
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
int type() const override
Returns a unique graphics item type identifier.
A layout item subclass for map legends.
virtual bool containsAdvancedEffects() const
Returns true if the item contains contents with blend modes or transparency effects which can only be...
bool isDrawing() const
True if a draw is already in progress.
@ AllProperties
All properties for item.
virtual QPainterPath framePath() const
Returns the path to use when drawing the item's frame or background.
Abstract base class for annotation items which are drawn over a map.
QgsCompositionConverter class converts a QGIS 2.x composition to a QGIS 3.x layout.
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified style entity visitor, causing it to visit all style entities associated with th...
void setAtlasScalingMode(AtlasScalingMode mode)
Sets the current atlas scaling mode.
virtual bool requiresRasterization() const
Returns true if the item is drawn in such a way that forces the whole layout to be rasterized when ex...
virtual void invalidateCache()
Forces a deferred update of any cached image the item uses.
virtual void zoomContent(double factor, QPointF point)
Zooms content of item.
MapItemFlag
Various flags that affect drawing of map items.
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
@ Fixed
The current scale of the map is used for each feature of the atlas.
void paint(QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget) override
Handles preparing a paint surface for the layout item and painting the item's content.
A collection of overviews which are drawn above the map content in a QgsLayoutItemMap.
Base class for graphical items within a QgsLayout.
FeatureClippingType
Feature clipping behavior, which controls how features from vector layers will be clipped.
QgsMapRendererJob::Errors renderingErrors() const
Returns map rendering errors.
This class represents a coordinate reference system (CRS).
void refresh() override
Refreshes the item, causing a recalculation of any property overrides and recalculation of its positi...
An individual overview which is drawn above the map content in a QgsLayoutItemMap,...
Layout graphical items for displaying a map.
QString followVisibilityPresetName() const
Preset name that decides which layers and layer styles are used for map rendering.
virtual Flags itemFlags() const
Returns the item's flags, which indicate how the item behaves.
@ Predefined
A scale is chosen from the predefined scales.
void themeChanged(const QString &theme)
Emitted when the map's associated theme is changed.
A geometry is the spatial representation of a feature.
void changed()
Emitted when the item clipping settings are changed.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
@ ClipPainterOnly
Applying clipping on the painter only (i.e. feature boundaries will be unchanged, but may be invisibl...
void mapRotationChanged(double newRotation)
Emitted when the map's rotation changes.
virtual QString displayName() const
Gets item display name.
void setKeepLayerStyles(bool enabled)
Sets whether current styles of layers should be overridden by previously stored styles.
void setAtlasMargin(double margin)
Sets the margin size (percentage) used when the map is in atlas mode.
PropertyValueType
Specifies whether the value returned by a function should be the original, user set value,...
virtual void moveContent(double dx, double dy)
Moves the content of the item, by a specified dx and dy in layout units.
virtual void setMoveContentPreviewOffset(double dx, double dy)
Sets temporary offset for the item, by a specified dx and dy in layout units.
QList< QgsMapRendererJob::Error > Errors
The QgsMapSettings class contains configuration for rendering of the map.
void changed()
Emitted when the atlas clipping settings are changed.
A collection of grids which is drawn above the map content in a QgsLayoutItemMap.
@ EvaluatedValue
Return the current evaluated value for the property.
void setKeepLayerSet(bool enabled)
Sets whether the stored layer set should be used or the current layer set of the associated project.
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Base class for objects with an associated (optional) temporal range.
This class provides a method of storing measurements for use in QGIS layouts using a variety of diffe...
DataDefinedProperty
Data defined properties for different item types.
Contains settings relating to clipping a layout map by the current atlas feature.
void setDrawAnnotations(bool draw)
Sets whether annotations are drawn within the map.
bool keepLayerSet() const
Returns whether a stored layer set should be used or the current layer set from the project associate...