Class: QgsLayoutItemMap

Layout graphical items for displaying a map.

Class Hierarchy

Inheritance diagram of qgis.core.QgsLayoutItemMap

Base classes

QgsLayoutItem

Base class for graphical items within a QgsLayout.

QgsLayoutObject

A base class for objects which belong to a layout.

QObject

QgsExpressionContextGenerator

Abstract interface for generating an expression context.

QGraphicsRectItem

QAbstractGraphicsShapeItem

QGraphicsItem

QgsLayoutUndoObjectInterface

Interface for layout objects which support undo/redo commands.

QgsTemporalRangeObject

Base class for objects with an associated (optional) temporal range.

Methods

addLabelBlockingItem

Sets the specified layout item as a "label blocking item" for this map.

addRenderedFeatureHandler

Adds a rendered feature handler to use while rendering the map.

assignFreeId

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

atlasClippingSettings

Returns the map's atlas clipping settings.

atlasDriven

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

atlasMargin

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

atlasScalingMode

Returns the current atlas scaling mode.

containsWmsLayer

Returns True if the map contains a WMS layer.

crs

Returns coordinate reference system used for rendering the map.

drawAnnotations

Returns whether annotations are drawn within the map.

extent

Returns the current map extent.

followVisibilityPreset

Returns whether the map should follow a map theme.

followVisibilityPresetName

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

grid

Returns the map item's first grid.

grids

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

isDrawing

True if a draw is already in progress

isLabelBlockingItem

Returns True if the specified item is a "label blocking item".

itemClippingSettings

Returns the map's item based clip path settings.

keepLayerSet

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

keepLayerStyles

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

labelMargin

Returns the margin from the map edges in which no labels may be placed.

layerStyleOverrides

Returns stored overrides of styles for layers.

layers

Returns the stored layer set.

layersToRender

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.

layoutToMapCoordsTransform

Creates a transform from layout coordinates to map coordinates.

mapFlags

Returns the map item's flags, which control how the map content is drawn.

mapRotation

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

mapSettings

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

mapToItemCoords

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

mapUnitsToLayoutUnits

Returns the conversion factor from map units to layout units.

overview

Returns the map item's first overview.

overviews

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

presetCrs

Returns the map's preset coordinate reference system.

previewLabelingResults

Returns the labeling results of the most recent preview map render.

removeLabelBlockingItem

Removes the specified layout item from the map's "label blocking items".

removeRenderedFeatureHandler

Removes a previously added rendered feature handler.

renderingErrors

Returns map rendering errors

requestedExtent

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

scale

Returns the map scale.

setAtlasDriven

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

setAtlasMargin

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

setAtlasScalingMode

Sets the current atlas scaling mode.

setCrs

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

setDrawAnnotations

Sets whether annotations are drawn within the map.

setExtent

Sets a new extent for the map.

setFollowVisibilityPreset

Sets whether the map should follow a map theme.

setFollowVisibilityPresetName

Sets preset name for map rendering.

setKeepLayerSet

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

setKeepLayerStyles

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

setLabelMargin

Sets the margin from the map edges in which no labels may be placed.

setLayerStyleOverrides

Sets the stored overrides of styles for layers.

setLayers

Sets the stored layers set.

setMapFlags

Sets the map item's flags, which control how the map content is drawn.

setMapRotation

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

setScale

Sets new map scale and changes only the map extent.

setZRange

Sets the map's z range, which is used to filter the map's content to only display features within the specified z range.

setZRangeEnabled

Sets whether the z range is enabled (i.e. whether the map will be filtered to content within the zRange().).

storeCurrentLayerStyles

Stores the current project layer styles into style overrides.

transformedMapPolygon

Returns extent that considers rotation and shift with mOffsetX / mOffsetY

updateBoundingRect

Updates the bounding rect of this item.

visibleExtentPolygon

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

zRange

Returns the map's z range, which is used to filter the map's content to only display features within the specified z range.

zRangeEnabled

Returns whether the z range is enabled (i.e. whether the map will be filtered to content within the zRange().).

zoomToExtent

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

Virtual Methods

In PyQGIS, only methods marked as virtual can be safely overridden in a Python subclass of QgsLayoutItemMap. See the FAQ for more details.

numberExportLayers

Static Methods

create

Returns a new map item for the specified layout.

Signals

crsChanged

Emitted when the map's coordinate reference system is changed.

extentChanged

Emitted when the map's extent changes.

layerStyleOverridesChanged

Emitted when layer style overrides are changed.

mapRotationChanged

Emitted when the map's rotation changes.

preparedForAtlas

Emitted when the map has been prepared for atlas rendering, just before actual rendering

previewRefreshed

Emitted whenever the item's map preview has been refreshed.

themeChanged

Emitted when the map's associated theme is changed.

Attributes

Auto

Fixed

Predefined

ShowPartialLabels

ShowUnplacedLabels

class qgis.core.QgsLayoutItemMap[source]

Bases: QgsLayoutItem, QgsTemporalRangeObject

__init__(layout: QgsLayout | None)

Constructor for QgsLayoutItemMap, with the specified parent layout.

Parameters:

layout (Optional[QgsLayout])

class AtlasScalingMode

Bases: int

Auto = 2
Fixed = 0
class MapItemFlag

Bases: int

class MapItemFlags
class MapItemFlags(f: QgsLayoutItemMap.MapItemFlags | QgsLayoutItemMap.MapItemFlag)
class MapItemFlags(a0: QgsLayoutItemMap.MapItemFlags)

Bases: object

Predefined = 1
ShowPartialLabels = 1
ShowUnplacedLabels = 2
addLabelBlockingItem(self, item: QgsLayoutItem | None)[source]

Sets the specified layout item as a “label blocking item” for this map.

Items which are marked as label blocking items prevent any map labels from being placed in the area of the map item covered by the item.

Added in version 3.6.

Parameters:

item (Optional[QgsLayoutItem])

addRenderedFeatureHandler(self, handler: QgsRenderedFeatureHandlerInterface | None)[source]

Adds a rendered feature handler to use while rendering the map.

Ownership of handler is NOT transferred, and it is the caller’s responsibility to ensure that the handler exists for as long as it is registered with the map item.

Callers should call removeRenderedFeatureHandler() to remove the handler before destroying the handler.

Added in version 3.10.

Parameters:

handler (Optional[QgsRenderedFeatureHandlerInterface])

assignFreeId(self)[source]

Sets the map id() to a number not yet used in the layout. The existing id() is kept if it is not in use.

atlasClippingSettings(self) QgsLayoutItemMapAtlasClippingSettings | None[source]

Returns the map’s atlas clipping settings.

Added in version 3.16.

Return type:

Optional[QgsLayoutItemMapAtlasClippingSettings]

atlasDriven(self) bool[source]

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

Return type:

bool

Returns:

True if map will follow the current atlas feature.

See also

setAtlasDriven()

atlasMargin(self, valueType: QgsLayoutObject.PropertyValueType = QgsLayoutObject.EvaluatedValue) float[source]

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

Parameters:

valueType (QgsLayoutObject.PropertyValueType = QgsLayoutObject.EvaluatedValue) – controls 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).

Return type:

float

Returns:

margin size in percentage to leave around the atlas feature’s extent

Note

this is only used if atlasScalingMode() is Auto.

See also

setAtlasMargin()

atlasScalingMode(self) QgsLayoutItemMap.AtlasScalingMode[source]

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.

Return type:

QgsLayoutItemMap.AtlasScalingMode

Returns:

the current scaling mode

Note

this parameter is only used if atlasDriven() is True

See also

atlasDriven()

containsWmsLayer(self) bool[source]

Returns True if the map contains a WMS layer.

Return type:

bool

static create(layout: QgsLayout | None) QgsLayoutItemMap | None[source]

Returns a new map item for the specified layout.

The caller takes responsibility for deleting the returned object.

Parameters:

layout (Optional[QgsLayout])

Return type:

Optional[QgsLayoutItemMap]

crs(self) QgsCoordinateReferenceSystem[source]

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()

See also

setCrs()

Return type:

QgsCoordinateReferenceSystem

signal crsChanged[source]

Emitted when the map’s coordinate reference system is changed.

Added in version 3.18.

drawAnnotations(self) bool[source]

Returns whether annotations are drawn within the map.

Return type:

bool

extent(self) QgsRectangle[source]

Returns the current map extent.

See also

extentChanged()

Return type:

QgsRectangle

signal extentChanged[source]

Emitted when the map’s extent changes.

See also

setExtent()

See also

extent()

followVisibilityPreset(self) bool[source]

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.

Return type:

bool

followVisibilityPresetName(self) str[source]

Preset name that decides which layers and layer styles are used for map rendering. It is only used when followVisibilityPreset() returns True.

See also

themeChanged()

Return type:

str

grid(self) QgsLayoutItemMapGrid | None[source]

Returns the map item’s first grid. This is a convenience function.

See also

grids()

Return type:

Optional[QgsLayoutItemMapGrid]

grids(self) QgsLayoutItemMapGridStack | None[source]

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

See also

grid()

Return type:

Optional[QgsLayoutItemMapGridStack]

isDrawing(self) bool[source]

True if a draw is already in progress

Return type:

bool

isLabelBlockingItem(self, item: QgsLayoutItem | None) bool[source]

Returns True if the specified item is a “label blocking item”.

Items which are marked as label blocking items prevent any map labels from being placed in the area of the map item covered by the item.

Added in version 3.6.

Parameters:

item (Optional[QgsLayoutItem])

Return type:

bool

itemClippingSettings(self) QgsLayoutItemMapItemClipPathSettings | None[source]

Returns the map’s item based clip path settings.

Added in version 3.16.

Return type:

Optional[QgsLayoutItemMapItemClipPathSettings]

keepLayerSet(self) bool[source]

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

layers()

Return type:

bool

keepLayerStyles(self) bool[source]

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

Return type:

bool

labelMargin(self) QgsLayoutMeasurement[source]

Returns the margin from the map edges in which no labels may be placed.

If the margin is 0 then labels can be placed right up to the edge (and possibly overlapping the edge) of the map.

See also

setLabelMargin()

Added in version 3.6.

Return type:

QgsLayoutMeasurement

layerStyleOverrides(self) Dict[str, str]

Returns stored overrides of styles for layers.

Return type:

Dict[str, str]

signal layerStyleOverridesChanged[source]

Emitted when layer style overrides are changed… a means to let associated legend items know they should update

layers(self) List[QgsMapLayer]

Returns the stored layer set. If empty, the current project layers will be used instead.

See also

setLayers()

See also

keepLayerSet()

Return type:

List[QgsMapLayer]

layersToRender(self, context: QgsExpressionContext | None = None) List[QgsMapLayer]

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.

Parameters:

context (Optional[QgsExpressionContext] = None)

Return type:

List[QgsMapLayer]

layoutToMapCoordsTransform(self) QTransform[source]

Creates a transform from layout coordinates to map coordinates.

Return type:

QTransform

mapFlags(self) QgsLayoutItemMap.MapItemFlags[source]

Returns the map item’s flags, which control how the map content is drawn.

See also

setMapFlags()

Added in version 3.6.

Return type:

QgsLayoutItemMap.MapItemFlags

mapRotation(self, valueType: QgsLayoutObject.PropertyValueType = QgsLayoutObject.EvaluatedValue) float[source]

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

Parameters:

valueType (QgsLayoutObject.PropertyValueType = QgsLayoutObject.EvaluatedValue) – controls 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()

Return type:

float

signal mapRotationChanged(newRotation: float)[source]

Emitted when the map’s rotation changes.

See also

setMapRotation()

See also

mapRotation()

Parameters:

newRotation (float)

mapSettings(self, extent: QgsRectangle, size: QSizeF, dpi: float, includeLayerSettings: bool) QgsMapSettings[source]

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.

Parameters:
  • extent (QgsRectangle)

  • size (QSizeF)

  • dpi (float)

  • includeLayerSettings (bool)

Return type:

QgsMapSettings

mapToItemCoords(self, mapCoords: QPointF | QPoint) QPointF[source]

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

Parameters:

mapCoords (Union[QPointF, QPoint])

Return type:

QPointF

mapUnitsToLayoutUnits(self) float[source]

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.

Return type:

float

virtual numberExportLayers(self) int[source]

Deprecated since version 3.10.

Return type:

int

overview(self) QgsLayoutItemMapOverview | None[source]

Returns the map item’s first overview. This is a convenience function.

Return type:

Optional[QgsLayoutItemMapOverview]

Returns:

pointer to first overview for map item

See also

overviews()

overviews(self) QgsLayoutItemMapOverviewStack | None[source]

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

Return type:

Optional[QgsLayoutItemMapOverviewStack]

Returns:

pointer to overview stack

See also

overview()

signal preparedForAtlas[source]

Emitted when the map has been prepared for atlas rendering, just before actual rendering

presetCrs(self) QgsCoordinateReferenceSystem[source]

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()

See also

setCrs()

Return type:

QgsCoordinateReferenceSystem

previewLabelingResults(self) QgsLabelingResults | None[source]

Returns the labeling results of the most recent preview map render. May be None if no map preview has been rendered in the item.

The map item retains ownership of the returned results.

Added in version 3.20.

Return type:

Optional[QgsLabelingResults]

signal previewRefreshed[source]

Emitted whenever the item’s map preview has been refreshed.

Added in version 3.20.

removeLabelBlockingItem(self, item: QgsLayoutItem | None)[source]

Removes the specified layout item from the map’s “label blocking items”.

Items which are marked as label blocking items prevent any map labels from being placed in the area of the map item covered by the item.

Added in version 3.6.

Parameters:

item (Optional[QgsLayoutItem])

removeRenderedFeatureHandler(self, handler: QgsRenderedFeatureHandlerInterface | None)[source]

Removes a previously added rendered feature handler.

Added in version 3.10.

Parameters:

handler (Optional[QgsRenderedFeatureHandlerInterface])

renderingErrors(self) List[QgsMapRendererJob.Error][source]

Returns map rendering errors

Return type:

List[QgsMapRendererJob.Error]

Returns:

list of errors

requestedExtent(self) QgsRectangle[source]

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

Return type:

QgsRectangle

scale(self) float[source]

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

See also

setScale()

Return type:

float

setAtlasDriven(self, enabled: bool)[source]

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

Parameters:

enabled (bool) – set to True if the map extents should be set by the current atlas feature.

See also

atlasDriven()

setAtlasMargin(self, margin: float)[source]

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

Parameters:

margin (float) – size in percentage to leave around the atlas feature’s extent

Note

this is only used if atlasScalingMode() is Auto.

See also

atlasMargin()

setAtlasScalingMode(self, mode: QgsLayoutItemMap.AtlasScalingMode)[source]

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:

mode (QgsLayoutItemMap.AtlasScalingMode) – atlas scaling mode to set

Note

this parameter is only used if atlasDriven() is True

See also

atlasDriven()

setCrs(self, crs: QgsCoordinateReferenceSystem)[source]

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()

See also

presetCrs()

Parameters:

crs (QgsCoordinateReferenceSystem)

setDrawAnnotations(self, draw: bool)[source]

Sets whether annotations are drawn within the map.

Parameters:

draw (bool)

setExtent(self, extent: QgsRectangle)[source]

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()

See also

extentChanged()

Parameters:

extent (QgsRectangle)

setFollowVisibilityPreset(self, follow: bool)[source]

Sets whether the map should follow a map theme. See followVisibilityPreset() for more details.

Parameters:

follow (bool)

setFollowVisibilityPresetName(self, name: str | None)[source]

Sets preset name for map rendering. See followVisibilityPresetName() for more details.

See also

themeChanged()

Parameters:

name (Optional[str])

setKeepLayerSet(self, enabled: bool)[source]

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()

See also

layers()

Parameters:

enabled (bool)

setKeepLayerStyles(self, enabled: bool)[source]

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

Parameters:

enabled (bool)

setLabelMargin(self, margin: QgsLayoutMeasurement)[source]

Sets the margin from the map edges in which no labels may be placed.

If the margin is 0 then labels can be placed right up to the edge (and possibly overlapping the edge) of the map.

See also

labelMargin()

Added in version 3.6.

Parameters:

margin (QgsLayoutMeasurement)

setLayerStyleOverrides(self, overrides: Dict[str | None, str | None])[source]

Sets the stored overrides of styles for layers.

Parameters:

overrides (Dict[Optional[str], Optional[str]])

setLayers(self, layers: Iterable[QgsMapLayer])[source]

Sets the stored layers set. If empty, the current project layers will be used. If the map item is set to follow a map theme (via followVisibilityPreset() and followVisibilityPresetName() ), then this method will have no effect and the layers rendered in the map will always follow the map theme.

See also

layers()

See also

keepLayerSet()

Parameters:

layers (Iterable[QgsMapLayer])

setMapFlags(self, flags: QgsLayoutItemMap.MapItemFlags | QgsLayoutItemMap.MapItemFlag)[source]

Sets the map item’s flags, which control how the map content is drawn.

See also

mapFlags()

Added in version 3.6.

Parameters:

flags (Union[QgsLayoutItemMap.MapItemFlags, QgsLayoutItemMap.MapItemFlag])

setMapRotation(self, rotation: float)[source]

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()

Parameters:

rotation (float)

setScale(self, scale: float, forceUpdate: bool = True)[source]

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()

Parameters:
  • scale (float)

  • forceUpdate (bool = True)

setZRange(self, range: QgsDoubleRange)[source]

Sets the map’s z range, which is used to filter the map’s content to only display features within the specified z range.

Note

This is only considered when zRangeEnabled() is True.

See also

zRange()

Added in version 3.38.

Parameters:

range (QgsDoubleRange)

setZRangeEnabled(self, enabled: bool)[source]

Sets whether the z range is enabled (i.e. whether the map will be filtered to content within the zRange().)

See also

zRangeEnabled()

Added in version 3.38.

Parameters:

enabled (bool)

storeCurrentLayerStyles(self)[source]

Stores the current project layer styles into style overrides.

signal themeChanged(theme: str)[source]

Emitted when the map’s associated theme is changed.

Note

This signal is not emitted when the definition of the theme changes, only the map is linked to a different theme then it previously was.

Added in version 3.14.

Parameters:

theme (str)

transformedMapPolygon(self) QPolygonF[source]

Returns extent that considers rotation and shift with mOffsetX / mOffsetY

Return type:

QPolygonF

updateBoundingRect(self)[source]

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

visibleExtentPolygon(self) QPolygonF[source]

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

Return type:

QPolygonF

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()

zRange(self) QgsDoubleRange[source]

Returns the map’s z range, which is used to filter the map’s content to only display features within the specified z range.

Note

This is only considered when zRangeEnabled() is True.

See also

setZRange()

See also

zRangeEnabled()

Added in version 3.38.

Return type:

QgsDoubleRange

zRangeEnabled(self) bool[source]

Returns whether the z range is enabled (i.e. whether the map will be filtered to content within the zRange().)

See also

zRange()

Added in version 3.38.

Return type:

bool

zoomToExtent(self, extent: QgsRectangle)[source]

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()

Parameters:

extent (QgsRectangle)