QGIS API Documentation  3.4.15-Madeira (e83d02e274)
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
QgsLayoutItemMap Class Reference

Layout graphical items for displaying a map. More...

#include <qgslayoutitemmap.h>

Inheritance diagram for QgsLayoutItemMap:
Inheritance graph
[legend]

Public Types

enum  AtlasScalingMode { Fixed, Predefined, Auto }
 Scaling modes used for the serial rendering (atlas) More...
 
- Public Types inherited from QgsLayoutItem
enum  Flag { FlagOverridesPaint = 1 << 1 }
 Flags for controlling how an item behaves. More...
 
enum  ReferencePoint {
  UpperLeft, UpperMiddle, UpperRight, MiddleLeft,
  Middle, MiddleRight, LowerLeft, LowerMiddle,
  LowerRight
}
 Fixed position reference point. More...
 
enum  UndoCommand {
  UndoNone = -1, UndoIncrementalMove = 1, UndoIncrementalResize, UndoStrokeColor,
  UndoStrokeWidth, UndoBackgroundColor, UndoOpacity, UndoSetId,
  UndoRotation, UndoShapeStyle, UndoShapeCornerRadius, UndoNodeMove,
  UndoAtlasMargin, UndoMapRotation, UndoZoomContent, UndoOverviewStyle,
  UndoGridFramePenColor, UndoMapGridFrameFill1Color, UndoMapGridFrameFill2Color, UndoMapAnnotationDistance,
  UndoMapGridAnnotationFontColor, UndoMapGridLineSymbol, UndoMapGridMarkerSymbol, UndoPictureRotation,
  UndoPictureFillColor, UndoPictureStrokeColor, UndoPictureStrokeWidth, UndoPictureNorthOffset,
  UndoLabelText, UndoLabelFont, UndoLabelMargin, UndoLabelFontColor,
  UndoLegendText, UndoLegendColumnCount, UndoLegendSymbolWidth, UndoLegendSymbolHeight,
  UndoLegendWmsLegendWidth, UndoLegendWmsLegendHeight, UndoLegendTitleSpaceBottom, UndoLegendGroupSpace,
  UndoLegendLayerSpace, UndoLegendSymbolSpace, UndoLegendIconSymbolSpace, UndoLegendFontColor,
  UndoLegendBoxSpace, UndoLegendColumnSpace, UndoLegendLineSpacing, UndoLegendRasterStrokeWidth,
  UndoLegendRasterStrokeColor, UndoLegendTitleFont, UndoLegendGroupFont, UndoLegendLayerFont,
  UndoLegendItemFont, UndoScaleBarLineWidth, UndoScaleBarSegmentSize, UndoScaleBarSegmentsLeft,
  UndoScaleBarSegments, UndoScaleBarHeight, UndoScaleBarFontColor, UndoScaleBarFillColor,
  UndoScaleBarFillColor2, UndoScaleBarStrokeColor, UndoScaleBarUnitText, UndoScaleBarMapUnitsSegment,
  UndoScaleBarLabelBarSize, UndoScaleBarBoxContentSpace, UndoArrowStrokeWidth, UndoArrowHeadWidth,
  UndoArrowHeadFillColor, UndoArrowHeadStrokeColor, UndoCustomCommand
}
 Layout item undo commands, used for collapsing undo commands. More...
 
- Public Types inherited from QgsLayoutObject
enum  DataDefinedProperty {
  NoProperty = 0, AllProperties, TestProperty, PresetPaperSize,
  PaperWidth, PaperHeight, NumPages, PaperOrientation,
  PageNumber, PositionX, PositionY, ItemWidth,
  ItemHeight, ItemRotation, Transparency, Opacity,
  BlendMode, ExcludeFromExports, FrameColor, BackgroundColor,
  MapRotation, MapScale, MapXMin, MapYMin,
  MapXMax, MapYMax, MapAtlasMargin, MapLayers,
  MapStylePreset, PictureSource, PictureSvgBackgroundColor, PictureSvgStrokeColor,
  PictureSvgStrokeWidth, SourceUrl, LegendTitle, LegendColumnCount,
  ScalebarFillColor, ScalebarFillColor2, ScalebarLineColor, ScalebarLineWidth,
  AttributeTableSourceLayer
}
 Data defined properties for different item types. More...
 
enum  PropertyValueType { EvaluatedValue = 0, OriginalValue }
 Specifies whether the value returned by a function should be the original, user set value, or the current evaluated value for the property. More...
 

Public Slots

void invalidateCache () override
 
void refresh () override
 
void refreshDataDefinedProperty (QgsLayoutObject::DataDefinedProperty property=QgsLayoutObject::AllProperties) override
 
void updateBoundingRect ()
 Updates the bounding rect of this item. Call this function before doing any changes related to annotation out of the map rectangle. More...
 
- Public Slots inherited from QgsLayoutItem
virtual void invalidateCache ()
 Forces a deferred update of any cached image the item uses. More...
 
virtual void redraw ()
 Triggers a redraw (update) of the item. More...
 
void refresh () override
 Refreshes the item, causing a recalculation of any property overrides and recalculation of its position and size. More...
 
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 item with this new value. More...
 
virtual void rotateItem (double angle, QPointF transformOrigin)
 Rotates the item by a specified angle in degrees clockwise around a specified reference point. More...
 
virtual void setItemRotation (double rotation, bool adjustPosition=true)
 Sets the layout item's rotation, in degrees clockwise. More...
 
- Public Slots inherited from QgsLayoutObject
virtual void refresh ()
 Refreshes the object, causing a recalculation of any property overrides. More...
 

Signals

void extentChanged ()
 Is emitted when the map's extent changes. More...
 
void layerStyleOverridesChanged ()
 Emitted when layer style overrides are changed... More...
 
void mapRotationChanged (double newRotation)
 Is emitted when the map's rotation changes. More...
 
void preparedForAtlas ()
 Is emitted when the map has been prepared for atlas rendering, just before actual rendering. More...
 
- Signals inherited from QgsLayoutItem
void frameChanged ()
 Emitted if the item's frame style changes. More...
 
void lockChanged ()
 Emitted if the item's lock status changes. More...
 
void rotationChanged (double newRotation)
 Emitted on item rotation change. More...
 
void sizePositionChanged ()
 Emitted when the item's size or position changes. More...
 
- Signals inherited from QgsLayoutObject
void changed ()
 Emitted when the object's properties change. More...
 

Public Member Functions

 QgsLayoutItemMap (QgsLayout *layout)
 Constructor for QgsLayoutItemMap, with the specified parent layout. More...
 
 ~QgsLayoutItemMap () override
 
void assignFreeId ()
 Sets the map id() to a number not yet used in the layout. More...
 
bool atlasDriven () const
 Returns whether the map extent is set to follow the current atlas feature. More...
 
double atlasMargin (QgsLayoutObject::PropertyValueType valueType=QgsLayoutObject::EvaluatedValue)
 Returns the margin size (percentage) used when the map is in atlas mode. More...
 
AtlasScalingMode atlasScalingMode () const
 Returns the current atlas scaling mode. More...
 
bool containsAdvancedEffects () const override
 Returns true if the item contains contents with blend modes or transparency effects which can only be reproduced by rastering the item. More...
 
bool containsWmsLayer () const
 Returns true if the map contains a WMS layer. More...
 
QgsExpressionContext createExpressionContext () const override
 This method needs to be reimplemented in all classes which implement this interface and return an expression context. More...
 
QgsCoordinateReferenceSystem crs () const
 Returns coordinate reference system used for rendering the map. More...
 
QString displayName () const override
 Gets item display name. More...
 
bool drawAnnotations () const
 Returns whether annotations are drawn within the map. More...
 
QgsRectangle extent () const
 Returns the current map extent. More...
 
void finalizeRestoreFromXml () override
 Called after all pending items have been restored from XML. More...
 
bool followVisibilityPreset () const
 Returns whether the map should follow a map theme. More...
 
QString followVisibilityPresetName () const
 Preset name that decides which layers and layer styles are used for map rendering. More...
 
QgsLayoutItemMapGridgrid ()
 Returns the map item's first grid. More...
 
QgsLayoutItemMapGridStackgrids ()
 Returns the map item's grid stack, which is used to control how grids are drawn over the map's contents. More...
 
QIcon icon () const override
 Returns the item's icon. More...
 
QgsLayoutItem::Flags itemFlags () const override
 Returns the item's flags, which indicate how the item behaves. More...
 
bool keepLayerSet () const
 Returns whether a stored layer set should be used or the current layer set from the project associated with the layout. More...
 
bool keepLayerStyles () const
 Returns whether current styles of layers should be overridden by previously stored styles. More...
 
QList< QgsMapLayer * > layers () const
 Returns the stored layer set. More...
 
QList< QgsMapLayer * > layersToRender (const QgsExpressionContext *context=nullptr) const
 Returns a list of the layers which will be rendered within this map item, considering any locked layers, linked map theme, and data defined settings. More...
 
QMap< QString, QString > layerStyleOverrides () const
 Returns stored overrides of styles for layers. More...
 
double mapRotation (QgsLayoutObject::PropertyValueType valueType=QgsLayoutObject::EvaluatedValue) const
 Returns the rotation used for drawing the map within the layout item, in degrees clockwise. More...
 
QgsMapSettings mapSettings (const QgsRectangle &extent, QSizeF size, double dpi, bool includeLayerSettings) const
 Returns map settings that will be used for drawing of the map. More...
 
double mapUnitsToLayoutUnits () const
 Returns the conversion factor from map units to layout units. More...
 
void moveContent (double dx, double dy) override
 Moves the content of the item, by a specified dx and dy in layout units. More...
 
int numberExportLayers () const override
 Returns the number of layers that this item requires for exporting during layered exports (e.g. More...
 
QgsLayoutItemMapOverviewoverview ()
 Returns the map item's first overview. More...
 
QgsLayoutItemMapOverviewStackoverviews ()
 Returns the map item's overview stack, which is used to control how overviews are drawn over the map's contents. More...
 
void paint (QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget) override
 
QgsCoordinateReferenceSystem presetCrs () const
 Returns the map's preset coordinate reference system. More...
 
bool requiresRasterization () const override
 Returns true if the item is drawn in such a way that forces the whole layout to be rasterized when exporting to vector formats. More...
 
double scale () const
 Returns the map scale. More...
 
void setAtlasDriven (bool enabled)
 Sets whether the map extent will follow the current atlas feature. More...
 
void setAtlasMargin (double margin)
 Sets the margin size (percentage) used when the map is in atlas mode. More...
 
void setAtlasScalingMode (AtlasScalingMode mode)
 Sets the current atlas scaling mode. More...
 
void setCrs (const QgsCoordinateReferenceSystem &crs)
 Sets the map's preset crs (coordinate reference system). More...
 
void setDrawAnnotations (bool draw)
 Sets whether annotations are drawn within the map. More...
 
void setExtent (const QgsRectangle &extent)
 Sets a new extent for the map. More...
 
void setFollowVisibilityPreset (bool follow)
 Sets whether the map should follow a map theme. More...
 
void setFollowVisibilityPresetName (const QString &name)
 Sets preset name for map rendering. More...
 
void setFrameStrokeWidth (QgsLayoutMeasurement width) override
 Sets the frame stroke width. More...
 
void setKeepLayerSet (bool enabled)
 Sets whether the stored layer set should be used or the current layer set of the associated project. More...
 
void setKeepLayerStyles (bool enabled)
 Sets whether current styles of layers should be overridden by previously stored styles. More...
 
void setLayers (const QList< QgsMapLayer * > &layers)
 Sets the stored layers set. More...
 
void setLayerStyleOverrides (const QMap< QString, QString > &overrides)
 Sets the stored overrides of styles for layers. More...
 
void setMapRotation (double rotation)
 Sets the rotation for the map - this does not affect the layout item shape, only the way the map is drawn within the item. More...
 
void setMoveContentPreviewOffset (double dx, double dy) override
 Sets temporary offset for the item, by a specified dx and dy in layout units. More...
 
void setScale (double scale, bool forceUpdate=true)
 Sets new map scale and changes only the map extent. More...
 
void storeCurrentLayerStyles ()
 Stores the current project layer styles into style overrides. More...
 
int type () const override
 
QPolygonF visibleExtentPolygon () const
 Returns a polygon representing the current visible map extent, considering map extents and rotation. More...
 
void zoomContent (double factor, QPointF point) override
 Zooms content of item. More...
 
void zoomToExtent (const QgsRectangle &extent)
 Zooms the map so that the specified extent is fully visible within the map item. More...
 
- Public Member Functions inherited from QgsLayoutItem
 QgsLayoutItem (QgsLayout *layout, bool manageZValue=true)
 Constructor for QgsLayoutItem, with the specified parent layout. More...
 
 ~QgsLayoutItem () override
 
virtual void attemptMove (const QgsLayoutPoint &point, bool useReferencePoint=true, bool includesFrame=false, int page=-1)
 Attempts to move the item to a specified point. More...
 
void attemptMoveBy (double deltaX, double deltaY)
 Attempts to shift the item's position by a specified deltaX and deltaY, in layout units. More...
 
virtual void attemptResize (const QgsLayoutSize &size, bool includesFrame=false)
 Attempts to resize the item to a specified target size. More...
 
void attemptSetSceneRect (const QRectF &rect, bool includesFrame=false)
 Attempts to update the item's position and size to match the passed rect in layout coordinates. More...
 
QColor backgroundColor () const
 Returns the background color for this item. More...
 
void beginCommand (const QString &commandText, UndoCommand command=UndoNone)
 Starts new undo command for this item. More...
 
QPainter::CompositionMode blendMode () const
 Returns the item's composition blending mode. More...
 
void cancelCommand ()
 Cancels the current item command and discards it. More...
 
virtual void cleanup ()
 Called just before a batch of items are deleted, allowing them to run cleanup tasks. More...
 
QgsAbstractLayoutUndoCommandcreateCommand (const QString &text, int id, QUndoCommand *parent=nullptr) override
 Creates a new layout undo command with the specified text and parent. More...
 
void endCommand ()
 Completes the current item command and push it onto the layout's undo stack. More...
 
virtual double estimatedFrameBleed () const
 Returns the estimated amount the item's frame bleeds outside the item's actual rectangle. More...
 
bool excludeFromExports () const
 Returns whether the item should be excluded from layout exports and prints. More...
 
virtual QgsLayoutSize fixedSize () const
 Returns the fixed size of the item, if applicable, or an empty size if item can be freely resized. More...
 
bool frameEnabled () const
 Returns true if the item includes a frame. More...
 
Qt::PenJoinStyle frameJoinStyle () const
 Returns the join style used for drawing the item's frame. More...
 
QColor frameStrokeColor () const
 Returns the frame's stroke color. More...
 
QgsLayoutMeasurement frameStrokeWidth () const
 Returns the frame's stroke width. More...
 
bool hasBackground () const
 Returns true if the item has a background. More...
 
QString id () const
 Returns the item's ID name. More...
 
bool isGroupMember () const
 Returns true if the item is part of a QgsLayoutItemGroup group. More...
 
bool isLocked () const
 Returns true if the item is locked, and cannot be interacted with using the mouse. More...
 
double itemOpacity () const
 Returns the item's opacity. More...
 
double itemRotation () const
 Returns the current rotation for the item, in degrees clockwise. More...
 
virtual QgsLayoutSize minimumSize () const
 Returns the minimum allowed size of the item, if applicable, or an empty size if item can be freely resized. More...
 
int page () const
 Returns the page the item is currently on, with the first page returning 0. More...
 
QPointF pagePos () const
 Returns the item's position (in layout units) relative to the top left corner of its current page. More...
 
QgsLayoutPoint pagePositionWithUnits () const
 Returns the item's position (in item units) relative to the top left corner of its current page. More...
 
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. More...
 
QgsLayoutItemGroupparentGroup () const
 Returns the item's parent group, if the item is part of a QgsLayoutItemGroup group. More...
 
QgsLayoutPoint positionWithUnits () const
 Returns the item's current position, including units. More...
 
bool readXml (const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context)
 Sets the item state from a DOM element. More...
 
virtual QRectF rectWithFrame () const
 Returns the item's rectangular bounds, including any bleed caused by the item's frame. More...
 
ReferencePoint referencePoint () const
 Returns the reference point for positioning of the layout item. More...
 
void setBackgroundColor (const QColor &color)
 Sets the background color for this item. More...
 
void setBackgroundEnabled (bool drawBackground)
 Sets whether this item has a background drawn under it or not. More...
 
void setBlendMode (QPainter::CompositionMode mode)
 Sets the item's composition blending mode. More...
 
void setExcludeFromExports (bool exclude)
 Sets whether the item should be excluded from layout exports and prints. More...
 
virtual void setFrameEnabled (bool drawFrame)
 Sets whether this item has a frame drawn around it or not. More...
 
void setFrameJoinStyle (Qt::PenJoinStyle style)
 Sets the join style used when drawing the item's frame. More...
 
void setFrameStrokeColor (const QColor &color)
 Sets the frame stroke color. More...
 
virtual void setId (const QString &id)
 Set the item's id name. More...
 
void setItemOpacity (double opacity)
 Sets the item's opacity. More...
 
void setLocked (bool locked)
 Sets whether the item is locked, preventing mouse interactions with the item. More...
 
void setParentGroup (QgsLayoutItemGroup *group)
 Sets the item's parent group. More...
 
void setReferencePoint (ReferencePoint point)
 Sets the reference point for positioning of the layout item. More...
 
virtual void setSelected (bool selected)
 Sets whether the item should be selected. More...
 
virtual void setVisibility (bool visible)
 Sets whether the item is visible. More...
 
bool shouldDrawItem () const
 Returns whether the item should be drawn in the current context. More...
 
QgsLayoutSize sizeWithUnits () const
 Returns the item's current size, including units. More...
 
int type () const override
 Returns a unique graphics item type identifier. More...
 
virtual QString uuid () const
 Returns the item identification string. More...
 
bool writeXml (QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context) const
 Stores the item state in a DOM element. More...
 
- Public Member Functions inherited from QgsLayoutObject
 QgsLayoutObject (QgsLayout *layout)
 Constructor for QgsLayoutObject, with the specified parent layout. More...
 
QgsExpressionContext createExpressionContext () const override
 Creates an expression context relating to the objects' current state. More...
 
QStringList customProperties () const
 Returns list of keys stored in custom properties for the object. More...
 
QVariant customProperty (const QString &key, const QVariant &defaultValue=QVariant()) const
 Read a custom property from the object. More...
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the object's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the object's property collection, used for data defined overrides. More...
 
const QgsLayoutlayout () const
 Returns the layout the object is attached to. More...
 
QgsLayoutlayout ()
 Returns the layout the object is attached to. More...
 
void removeCustomProperty (const QString &key)
 Remove a custom property from the object. More...
 
void setCustomProperty (const QString &key, const QVariant &value)
 Set a custom property for the object. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the objects's property collection, used for data defined overrides. More...
 
- Public Member Functions inherited from QgsExpressionContextGenerator
virtual ~QgsExpressionContextGenerator ()=default
 
- Public Member Functions inherited from QgsLayoutUndoObjectInterface
virtual ~QgsLayoutUndoObjectInterface ()=default
 Destructor for QgsLayoutUndoObjectInterface. More...
 

Static Public Member Functions

static QgsLayoutItemMapcreate (QgsLayout *layout)
 Returns a new map item for the specified layout. More...
 
- Static Public Member Functions inherited from QgsLayoutObject
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the layout object property definitions. More...
 

Protected Member Functions

QRectF boundingRect () const override
 
void draw (QgsLayoutItemRenderContext &context) override
 Draws the item's contents using the specified item render context. More...
 
bool isDrawing () const
 True if a draw is already in progress. More...
 
QPointF mapToItemCoords (QPointF mapCoords) const
 Transforms map coordinates to item coordinates (considering rotation and move offset) More...
 
bool readPropertiesFromElement (const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context) override
 Sets item state from a DOM element. More...
 
QgsRectangle requestedExtent () const
 Calculates the extent to request and the yShift of the top-left point in case of rotation. More...
 
QPolygonF transformedMapPolygon () const
 Returns extent that considers rotation and shift with mOffsetX / mOffsetY. More...
 
bool writePropertiesToElement (QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const override
 Stores item state within an XML DOM element. More...
 
- Protected Member Functions inherited from QgsLayoutItem
QPointF adjustPointForReferencePosition (QPointF point, QSizeF size, ReferencePoint reference) const
 Adjusts the specified point at which a reference position of the item sits and returns the top left corner of the item, if reference point were placed at the specified position. More...
 
QgsLayoutSize applyDataDefinedSize (const QgsLayoutSize &size)
 Applies any present data defined size overrides to the specified layout size. More...
 
virtual QSizeF applyItemSizeConstraint (QSizeF targetSize)
 Applies any item-specific size constraint handling to a given targetSize in layout units. More...
 
virtual void drawBackground (QgsRenderContext &context)
 Draws the background for the item. More...
 
virtual void drawDebugRect (QPainter *painter)
 Draws a debugging rectangle of the item's current bounds within the specified painter. More...
 
virtual void drawFrame (QgsRenderContext &context)
 Draws the frame around the item. More...
 
QPointF positionAtReferencePoint (ReferencePoint reference) const
 Returns the current position (in layout units) of a reference point for the item. More...
 
void refreshBackgroundColor (bool updateItem=true)
 Refresh item's background color, considering data defined colors. More...
 
void refreshBlendMode ()
 Refresh item's blend mode, considering data defined blend mode. More...
 
void refreshFrame (bool updateItem=true)
 Refresh item's frame, considering data defined colors and frame size. More...
 
void refreshItemPosition ()
 Refreshes an item's position by rechecking it against any possible overrides such as data defined positioning. More...
 
void refreshItemRotation (QPointF *origin=nullptr)
 Refreshes an item's rotation by rechecking it against any possible overrides such as data defined rotation. More...
 
void refreshItemSize ()
 Refreshes an item's size by rechecking it against any possible item fixed or minimum sizes. More...
 
void refreshOpacity (bool updateItem=true)
 Refresh item's opacity, considering data defined opacity. More...
 
virtual void setFixedSize (const QgsLayoutSize &size)
 Sets a fixed size for the layout item, which prevents it from being freely resized. More...
 
virtual void setMinimumSize (const QgsLayoutSize &size)
 Sets the minimum allowed size for the layout item. More...
 
QgsLayoutPoint topLeftToReferencePoint (const QgsLayoutPoint &point) const
 Returns the position for the reference point of the item, if the top-left of the item was placed at the specified point. More...
 
- Protected Member Functions inherited from QgsLayoutObject
bool readObjectPropertiesFromElement (const QDomElement &parentElement, const QDomDocument &document, const QgsReadWriteContext &context)
 Sets object properties from a DOM element. More...
 
bool writeObjectPropertiesToElement (QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context) const
 Stores object properties within an XML DOM element. More...
 

Friends

class QgsCompositionConverter
 
class QgsLayoutItemLegend
 
class QgsLayoutItemMapGrid
 
class QgsLayoutItemMapOverview
 
class TestQgsLayoutMap
 

Additional Inherited Members

- Protected Attributes inherited from QgsLayoutObject
QgsObjectCustomProperties mCustomProperties
 Custom properties for object. More...
 
QgsPropertyCollection mDataDefinedProperties
 
QPointer< QgsLayoutmLayout
 
- Properties inherited from QgsLayoutItem
bool locked
 

Detailed Description

Layout graphical items for displaying a map.

Since
QGIS 3.0

Definition at line 36 of file qgslayoutitemmap.h.

Member Enumeration Documentation

Scaling modes used for the serial rendering (atlas)

Enumerator
Fixed 

The current scale of the map is used for each feature of the atlas.

Predefined 

A scale is chosen from the predefined scales.

The smallest scale from the list of scales where the atlas feature is fully visible is chosen.

See also
QgsAtlasComposition::setPredefinedScales.
Note
This mode is only valid for polygon or line atlas coverage layers
Auto 

The extent is adjusted so that each feature is fully visible.

A margin is applied around the center

See also
setAtlasMargin
Note
This mode is only valid for polygon or line atlas coverage layers

Definition at line 46 of file qgslayoutitemmap.h.

Constructor & Destructor Documentation

QgsLayoutItemMap::QgsLayoutItemMap ( QgsLayout layout)
explicit

Constructor for QgsLayoutItemMap, with the specified parent layout.

Definition at line 37 of file qgslayoutitemmap.cpp.

QgsLayoutItemMap::~QgsLayoutItemMap ( )
override

Definition at line 60 of file qgslayoutitemmap.cpp.

Member Function Documentation

void QgsLayoutItemMap::assignFreeId ( )

Sets the map id() to a number not yet used in the layout.

The existing id() is kept if it is not in use.

Definition at line 85 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::atlasDriven ( ) const
inline

Returns whether the map extent is set to follow the current atlas feature.

Returns
true if map will follow the current atlas feature.
See also
setAtlasDriven
atlasScalingMode

Definition at line 320 of file qgslayoutitemmap.h.

double QgsLayoutItemMap::atlasMargin ( QgsLayoutObject::PropertyValueType  valueType = QgsLayoutObject::EvaluatedValue)

Returns the margin size (percentage) used when the map is in atlas mode.

Parameters
valueTypecontrols whether the returned value is the user specified atlas margin, or the current evaluated atlas margin (which may be affected by data driven atlas margin settings).
Returns
margin size in percentage to leave around the atlas feature's extent
Note
this is only used if atlasScalingMode() is Auto.
See also
atlasScalingMode
setAtlasMargin

Definition at line 468 of file qgslayoutitemmap.cpp.

AtlasScalingMode QgsLayoutItemMap::atlasScalingMode ( ) const
inline

Returns the current atlas scaling mode.

This controls how the map's extents are calculated for the current atlas feature when an atlas composition is enabled.

Returns
the current scaling mode
Note
this parameter is only used if atlasDriven() is true
See also
setAtlasScalingMode
atlasDriven

Definition at line 339 of file qgslayoutitemmap.h.

QRectF QgsLayoutItemMap::boundingRect ( ) const
overrideprotected

Definition at line 1150 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::containsAdvancedEffects ( ) const
overridevirtual

Returns true if the item contains contents with blend modes or transparency effects which can only be reproduced by rastering the item.

Subclasses should ensure that implemented overrides of this method also check the base class result.

See also
requiresRasterization()

Reimplemented from QgsLayoutItem.

Definition at line 417 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::containsWmsLayer ( ) const

Returns true if the map contains a WMS layer.

Definition at line 384 of file qgslayoutitemmap.cpp.

QgsLayoutItemMap * QgsLayoutItemMap::create ( QgsLayout layout)
static

Returns a new map item for the specified layout.

The caller takes responsibility for deleting the returned object.

Definition at line 123 of file qgslayoutitemmap.cpp.

QgsExpressionContext QgsLayoutItemMap::createExpressionContext ( ) const
overridevirtual

This method needs to be reimplemented in all classes which implement this interface and return an expression context.

Since
QGIS 3.0

Reimplemented from QgsLayoutItem.

Definition at line 1155 of file qgslayoutitemmap.cpp.

QgsCoordinateReferenceSystem QgsLayoutItemMap::crs ( ) const

Returns coordinate reference system used for rendering the map.

This will match the presetCrs() if that is set, or if a preset CRS is not set then the map's CRS will follow the composition's project's CRS.

See also
presetCrs()
setCrs()

Definition at line 260 of file qgslayoutitemmap.cpp.

QString QgsLayoutItemMap::displayName ( ) const
overridevirtual

Gets item display name.

This is the item's id if set, and if not, a user-friendly string identifying item type.

See also
id()
setId()

Reimplemented from QgsLayoutItem.

Definition at line 113 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::draw ( QgsLayoutItemRenderContext context)
overrideprotectedvirtual

Draws the item's contents using the specified item render context.

Note that the context's painter has been scaled so that painter units are pixels. Use the QgsRenderContext methods to convert from millimeters or other units to the painter's units.

Implements QgsLayoutItem.

Definition at line 513 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::drawAnnotations ( ) const
inline

Returns whether annotations are drawn within the map.

See also
setDrawAnnotations()

Definition at line 311 of file qgslayoutitemmap.h.

QgsRectangle QgsLayoutItemMap::extent ( ) const

Returns the current map extent.

See also
visibleExtentPolygon()
extentChanged()

Definition at line 248 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::extentChanged ( )
signal

Is emitted when the map's extent changes.

See also
setExtent()
extent()
void QgsLayoutItemMap::finalizeRestoreFromXml ( )
overridevirtual

Called after all pending items have been restored from XML.

Items can use this method to run steps which must take place after all items have been restored to the layout, such as connecting to signals emitted by other items, which may not have existed in the layout at the time readXml() was called. E.g. a scalebar can use this to connect to its linked map item after restoration from XML.

See also
readXml()

Reimplemented from QgsLayoutItem.

Definition at line 1136 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::followVisibilityPreset ( ) const
inline

Returns whether the map should follow a map theme.

If true, the layers and layer styles will be used from given preset name (configured with setFollowVisibilityPresetName() method). This means when preset's settings are changed, the new settings are automatically picked up next time when rendering, without having to explicitly update them. At most one of the flags keepLayerSet() and followVisibilityPreset() should be enabled at any time since they are alternative approaches - if both are enabled, following map theme has higher priority. If neither is enabled (or if preset name is not set), map will use the same configuration as the map canvas uses.

Definition at line 251 of file qgslayoutitemmap.h.

QString QgsLayoutItemMap::followVisibilityPresetName ( ) const
inline

Preset name that decides which layers and layer styles are used for map rendering.

It is only used when followVisibilityPreset() returns true.

See also
setFollowVisibilityPresetName()

Definition at line 263 of file qgslayoutitemmap.h.

QgsLayoutItemMapGrid * QgsLayoutItemMap::grid ( )

Returns the map item's first grid.

This is a convenience function.

See also
grids()

Definition at line 493 of file qgslayoutitemmap.cpp.

QgsLayoutItemMapGridStack* QgsLayoutItemMap::grids ( )
inline

Returns the map item's grid stack, which is used to control how grids are drawn over the map's contents.

See also
grid()

Definition at line 378 of file qgslayoutitemmap.h.

QIcon QgsLayoutItemMap::icon ( ) const
overridevirtual

Returns the item's icon.

Reimplemented from QgsLayoutItem.

Definition at line 75 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::invalidateCache ( )
overrideslot

Definition at line 1269 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::isDrawing ( ) const
inlineprotected

True if a draw is already in progress.

Definition at line 434 of file qgslayoutitemmap.h.

QgsLayoutItem::Flags QgsLayoutItemMap::itemFlags ( ) const
overridevirtual

Returns the item's flags, which indicate how the item behaves.

Since
QGIS 3.4.3

Reimplemented from QgsLayoutItem.

Definition at line 80 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::keepLayerSet ( ) const
inline

Returns whether a stored layer set should be used or the current layer set from the project associated with the layout.

This is just a GUI flag, and itself does not change which layers are rendered in the map. Instead, use setLayers() to control which layers are rendered.

See also
setKeepLayerSet()
layers()

Definition at line 184 of file qgslayoutitemmap.h.

bool QgsLayoutItemMap::keepLayerStyles ( ) const
inline

Returns whether current styles of layers should be overridden by previously stored styles.

See also
setKeepLayerStyles()

Definition at line 216 of file qgslayoutitemmap.h.

QList< QgsMapLayer * > QgsLayoutItemMap::layers ( ) const

Returns the stored layer set.

If empty, the current project layers will be used instead.

See also
setLayers()
keepLayerSet()

Definition at line 274 of file qgslayoutitemmap.cpp.

QList< QgsMapLayer * > QgsLayoutItemMap::layersToRender ( const QgsExpressionContext context = nullptr) const

Returns a list of the layers which will be rendered within this map item, considering any locked layers, linked map theme, and data defined settings.

Definition at line 1424 of file qgslayoutitemmap.cpp.

QMap<QString, QString> QgsLayoutItemMap::layerStyleOverrides ( ) const
inline

Returns stored overrides of styles for layers.

See also
setLayerStyleOverrides()

Definition at line 228 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::layerStyleOverridesChanged ( )
signal

Emitted when layer style overrides are changed...

a means to let associated legend items know they should update

double QgsLayoutItemMap::mapRotation ( QgsLayoutObject::PropertyValueType  valueType = QgsLayoutObject::EvaluatedValue) const

Returns the rotation used for drawing the map within the layout item, in degrees clockwise.

Parameters
valueTypecontrols whether the returned value is the user specified rotation, or the current evaluated rotation (which may be affected by data driven rotation settings).
See also
setMapRotation()
mapRotationChanged()

Definition at line 450 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::mapRotationChanged ( double  newRotation)
signal

Is emitted when the map's rotation changes.

See also
setMapRotation()
mapRotation()
QgsMapSettings QgsLayoutItemMap::mapSettings ( const QgsRectangle extent,
QSizeF  size,
double  dpi,
bool  includeLayerSettings 
) const

Returns map settings that will be used for drawing of the map.

If includeLayerSettings is true, than settings specifically relating to map layers and map layer styles will be calculated. This can be expensive to calculate, so if they are not required in the map settings (e.g. for map settings which are used for scale related calculations only) then includeLayerSettings should be false.

Definition at line 1072 of file qgslayoutitemmap.cpp.

QPointF QgsLayoutItemMap::mapToItemCoords ( QPointF  mapCoords) const
protected

Transforms map coordinates to item coordinates (considering rotation and move offset)

Definition at line 1227 of file qgslayoutitemmap.cpp.

double QgsLayoutItemMap::mapUnitsToLayoutUnits ( ) const

Returns the conversion factor from map units to layout units.

This is calculated using the width of the map item and the width of the current visible map extent.

Definition at line 1207 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::moveContent ( double  dx,
double  dy 
)
overridevirtual

Moves the content of the item, by a specified dx and dy in layout units.

The default implementation has no effect.

See also
setMoveContentPreviewOffset()
zoomContent()

Reimplemented from QgsLayoutItem.

Definition at line 308 of file qgslayoutitemmap.cpp.

int QgsLayoutItemMap::numberExportLayers ( ) const
overridevirtual

Returns the number of layers that this item requires for exporting during layered exports (e.g.

SVG). Returns 0 if this item is to be placed on the same layer as the previous item, 1 if it should be placed on its own layer, and >1 if it requires multiple export layers.

Items which require multiply layers should check QgsLayoutContext::currentExportLayer() during their rendering to determine which layer should be drawn.

Reimplemented from QgsLayoutItem.

Definition at line 949 of file qgslayoutitemmap.cpp.

QgsLayoutItemMapOverview * QgsLayoutItemMap::overview ( )

Returns the map item's first overview.

This is a convenience function.

Returns
pointer to first overview for map item
See also
overviews()

Definition at line 503 of file qgslayoutitemmap.cpp.

QgsLayoutItemMapOverviewStack* QgsLayoutItemMap::overviews ( )
inline

Returns the map item's overview stack, which is used to control how overviews are drawn over the map's contents.

Returns
pointer to overview stack
See also
overview()

Definition at line 392 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  itemStyle,
QWidget *  pWidget 
)
override

Definition at line 752 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::preparedForAtlas ( )
signal

Is emitted when the map has been prepared for atlas rendering, just before actual rendering.

QgsCoordinateReferenceSystem QgsLayoutItemMap::presetCrs ( ) const
inline

Returns the map's preset coordinate reference system.

If set, this CRS will be used to render the map regardless of any project CRS setting. If the returned CRS is not valid then the project CRS will be used to render the map.

See also
crs()
setCrs()

Definition at line 165 of file qgslayoutitemmap.h.

bool QgsLayoutItemMap::readPropertiesFromElement ( const QDomElement &  element,
const QDomDocument &  document,
const QgsReadWriteContext context 
)
overrideprotectedvirtual

Sets item state from a DOM element.

Parameters
elementis the DOM element for the item
documentDOM document
contextread write context

Note that item subclasses should not rely on all other items being present in the layout at the time this method is called. Instead, any connections and links to other items must be made in the finalizeRestoreFromXml() method. E.g. when restoring a scalebar, the connection to the linked map's signals should be implemented in finalizeRestoreFromXml(), not readPropertiesFromElement().

See also
writePropertiesToElement()
readXml()

Reimplemented from QgsLayoutItem.

Definition at line 616 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::refresh ( )
overrideslot

Definition at line 128 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::refreshDataDefinedProperty ( QgsLayoutObject::DataDefinedProperty  property = QgsLayoutObject::AllProperties)
overrideslot

Definition at line 1307 of file qgslayoutitemmap.cpp.

QgsRectangle QgsLayoutItemMap::requestedExtent ( ) const
protected

Calculates the extent to request and the yShift of the top-left point in case of rotation.

Definition at line 1248 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::requiresRasterization ( ) const
overridevirtual

Returns true if the item is drawn in such a way that forces the whole layout to be rasterized when exporting to vector formats.

See also
containsAdvancedEffects()

Reimplemented from QgsLayoutItem.

Definition at line 397 of file qgslayoutitemmap.cpp.

double QgsLayoutItemMap::scale ( ) const

Returns the map scale.

The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.

See also
setScale()

Definition at line 139 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setAtlasDriven ( bool  enabled)

Sets whether the map extent will follow the current atlas feature.

Parameters
enabledset to true if the map extents should be set by the current atlas feature.
See also
atlasDriven
setAtlasScalingMode

Definition at line 456 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setAtlasMargin ( double  margin)
inline

Sets the margin size (percentage) used when the map is in atlas mode.

Parameters
marginsize in percentage to leave around the atlas feature's extent
Note
this is only used if atlasScalingMode() is Auto.
See also
atlasScalingMode
atlasMargin

Definition at line 371 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setAtlasScalingMode ( AtlasScalingMode  mode)
inline

Sets the current atlas scaling mode.

This controls how the map's extents are calculated for the current atlas feature when an atlas composition is enabled.

Parameters
modeatlas scaling mode to set
Note
this parameter is only used if atlasDriven() is true
See also
atlasScalingMode
atlasDriven

Definition at line 350 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setCrs ( const QgsCoordinateReferenceSystem crs)

Sets the map's preset crs (coordinate reference system).

If a valid CRS is set, this CRS will be used to render the map regardless of any project CRS setting. If the CRS is not valid then the project CRS will be used to render the map.

See also
crs()
presetCrs()

Definition at line 269 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setDrawAnnotations ( bool  draw)
inline

Sets whether annotations are drawn within the map.

See also
drawAnnotations()

Definition at line 305 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setExtent ( const QgsRectangle extent)

Sets a new extent for the map.

This method may change the width or height of the map item to ensure that the extent exactly matches the specified extent, with no overlap or margin. This method implicitly alters the map scale.

See also
zoomToExtent()
extentChanged()

Definition at line 184 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setFollowVisibilityPreset ( bool  follow)
inline

Sets whether the map should follow a map theme.

See followVisibilityPreset() for more details.

Definition at line 256 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setFollowVisibilityPresetName ( const QString &  name)
inline

Sets preset name for map rendering.

See followVisibilityPresetName() for more details.

See also
followVisibilityPresetName()

Definition at line 269 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setFrameStrokeWidth ( QgsLayoutMeasurement  width)
overridevirtual

Sets the frame stroke width.

See also
frameStrokeWidth()
setFrameEnabled()
setFrameJoinStyle()
setFrameStrokeColor()

Reimplemented from QgsLayoutItem.

Definition at line 958 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setKeepLayerSet ( bool  enabled)
inline

Sets whether the stored layer set should be used or the current layer set of the associated project.

This is just a GUI flag, and itself does not change which layers are rendered in the map. Instead, use setLayers() to control which layers are rendered.

See also
keepLayerSet()
layers()

Definition at line 194 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setKeepLayerStyles ( bool  enabled)
inline

Sets whether current styles of layers should be overridden by previously stored styles.

See also
keepLayerStyles()

Definition at line 222 of file qgslayoutitemmap.h.

void QgsLayoutItemMap::setLayers ( const QList< QgsMapLayer * > &  layers)

Sets the stored layers set.

If empty, the current project layers will be used instead.

See also
layers()
keepLayerSet()

Definition at line 279 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setLayerStyleOverrides ( const QMap< QString, QString > &  overrides)

Sets the stored overrides of styles for layers.

See also
layerStyleOverrides()

Definition at line 284 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setMapRotation ( double  rotation)

Sets the rotation for the map - this does not affect the layout item shape, only the way the map is drawn within the item.

Rotation is in degrees, clockwise.

See also
mapRotation()
mapRotationChanged()

Definition at line 441 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setMoveContentPreviewOffset ( double  dx,
double  dy 
)
overridevirtual

Sets temporary offset for the item, by a specified dx and dy in layout units.

This is useful for live updates when moving item content in a QgsLayoutView. The default implementation has no effect.

See also
moveContent()

Reimplemented from QgsLayoutItem.

Definition at line 1144 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::setScale ( double  scale,
bool  forceUpdate = true 
)

Sets new map scale and changes only the map extent.

The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.

See also
scale()

Definition at line 151 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::storeCurrentLayerStyles ( )

Stores the current project layer styles into style overrides.

Definition at line 294 of file qgslayoutitemmap.cpp.

QPolygonF QgsLayoutItemMap::transformedMapPolygon ( ) const
protected

Returns extent that considers rotation and shift with mOffsetX / mOffsetY.

Definition at line 1217 of file qgslayoutitemmap.cpp.

int QgsLayoutItemMap::type ( ) const
override

Definition at line 70 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::updateBoundingRect ( )
slot

Updates the bounding rect of this item. Call this function before doing any changes related to annotation out of the map rectangle.

Definition at line 1278 of file qgslayoutitemmap.cpp.

QPolygonF QgsLayoutItemMap::visibleExtentPolygon ( ) const

Returns a polygon representing the current visible map extent, considering map extents and rotation.

If the map rotation is 0, the result is the same as currentMapExtent

Returns
polygon with the four corner points representing the visible map extent. The points are clockwise, starting at the top-left point
See also
extent()

Definition at line 253 of file qgslayoutitemmap.cpp.

bool QgsLayoutItemMap::writePropertiesToElement ( QDomElement &  element,
QDomDocument &  document,
const QgsReadWriteContext context 
) const
overrideprotectedvirtual

Stores item state within an XML DOM element.

Parameters
elementis the DOM element to store the item's properties in
documentDOM document
contextread write context
See also
writeXml()
readPropertiesFromElement()

Reimplemented from QgsLayoutItem.

Definition at line 517 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::zoomContent ( double  factor,
QPointF  point 
)
overridevirtual

Zooms content of item.

Does nothing by default.

Parameters
factorzoom factor, where > 1 results in a zoom in and < 1 results in a zoom out
pointitem point for zoom center
See also
moveContent()

Reimplemented from QgsLayoutItem.

Definition at line 329 of file qgslayoutitemmap.cpp.

void QgsLayoutItemMap::zoomToExtent ( const QgsRectangle extent)

Zooms the map so that the specified extent is fully visible within the map item.

This method will not change the width or height of the map, and may result in an overlap or margin from the specified extent. This method implicitly alters the map scale.

See also
setExtent()

Definition at line 204 of file qgslayoutitemmap.cpp.

Friends And Related Function Documentation

friend class QgsCompositionConverter
friend

Definition at line 679 of file qgslayoutitemmap.h.

friend class QgsLayoutItemLegend
friend

Definition at line 677 of file qgslayoutitemmap.h.

friend class QgsLayoutItemMapGrid
friend

Definition at line 675 of file qgslayoutitemmap.h.

friend class QgsLayoutItemMapOverview
friend

Definition at line 676 of file qgslayoutitemmap.h.

friend class TestQgsLayoutMap
friend

Definition at line 678 of file qgslayoutitemmap.h.


The documentation for this class was generated from the following files: