Class: QgsMapToolIdentify

class qgis.gui.QgsMapToolIdentify(canvas: QgsMapCanvas)

Bases: QgsMapTool

constructor

Map tool for identifying features in layers

after selecting a point, performs the identification:

  • for raster layers shows value of underlying pixel

  • for vector layers shows feature attributes within search radius (allows editing values when vector layer is in editing mode)

Methods

activate

canvasMoveEvent

param e

canvasPressEvent

param e

canvasReleaseEvent

param e

childEvent

connectNotify

customEvent

deactivate

derivedAttributesForPoint

Returns derived attributes map for a clicked point in map coordinates.

disconnectNotify

flags

rtype

QgsMapTool.Flags

formatChanged

param layer

identify

Performs the identification.

identifyLayer

Call the right method depending on layer type

identifyMenu

Returns a pointer to the identify menu which will be used in layer selection mode this menu can also be customized

identifyMeshLayer

Identifies data from active scalar and vector dataset from the mesh layer

identifyRasterLayer

Performs the identification against a given raster layer.

identifyVectorLayer

Performs the identification against a given vector layer.

isSignalConnected

receivers

restoreCanvasPropertiesOverrides

Clears canvas properties overrides previously set with setCanvasPropertiesOverrides()

sender

senderSignalIndex

setCanvasPropertiesOverrides

Overrides some map canvas properties inside the map tool for the upcoming identify requests.

timerEvent

toCanvasCoordinates

transformation from map coordinates to screen coordinates

toLayerCoordinates

transformation from screen coordinates to layer's coordinates

toMapCoordinates

transformation from screen coordinates to map coordinates

toMapCoordinatesV2

transformation from layer's coordinates to map coordinates (which is different in case reprojection is used)

Signals

changedRasterResults

changedRasterResults(self, Iterable[QgsMapToolIdentify.IdentifyResult]) [signal]

identifyMessage

identifyMessage(self, str) [signal]

identifyProgress

identifyProgress(self, int, int) [signal]

Attributes

ActiveLayer

AllLayers

DefaultQgsSetting

LayerSelection

MeshLayer

RasterLayer

TopDownAll

TopDownStopAtFirst

VectorLayer

VectorTileLayer

ActiveLayer = 0
AllLayers = 15
DefaultQgsSetting = -1
class IdentifyMode

Bases: int

baseClass

alias of qgis._gui.QgsMapToolIdentify

class IdentifyResult

Bases: sip.wrapper

Constructor for IdentifyResult

QgsMapToolIdentify.IdentifyResult(layer: QgsMapLayer, feature: QgsFeature, derivedAttributes: Dict[str, str])

QgsMapToolIdentify.IdentifyResult(layer: QgsMapLayer, label: str, attributes: Dict[str, str], derivedAttributes: Dict[str, str])

QgsMapToolIdentify.IdentifyResult(layer: QgsMapLayer, label: str, fields: QgsFields, feature: QgsFeature, derivedAttributes: Dict[str, str])

QgsMapToolIdentify.IdentifyResult(QgsMapToolIdentify.IdentifyResult)

mAttributes
mDerivedAttributes
mFeature
mFields
mLabel
mLayer
mParams
LayerSelection = 3
class LayerType
class LayerType(Union[QgsMapToolIdentify.LayerType, QgsMapToolIdentify.Type]) None
class LayerType(QgsMapToolIdentify.LayerType) None

Bases: sip.wrapper

baseClass

alias of qgis._gui.QgsMapToolIdentify

MeshLayer = 4
RasterLayer = 2
TopDownAll = 2
TopDownStopAtFirst = 1
class Type

Bases: int

VectorLayer = 1
VectorTileLayer = 8
activate(self)
canvasMoveEvent(self, e: QgsMapMouseEvent)
Parameters

e (QgsMapMouseEvent) –

canvasPressEvent(self, e: QgsMapMouseEvent)
Parameters

e (QgsMapMouseEvent) –

canvasReleaseEvent(self, e: QgsMapMouseEvent)
Parameters

e (QgsMapMouseEvent) –

changedRasterResults

changedRasterResults(self, Iterable[QgsMapToolIdentify.IdentifyResult]) [signal]

childEvent(self, QChildEvent)
connectNotify(self, QMetaMethod)
customEvent(self, QEvent)
deactivate(self)
derivedAttributesForPoint(self, point: QgsPoint) Dict[str, str]

Returns derived attributes map for a clicked point in map coordinates. May be 2D or 3D point.

Parameters

point (QgsPoint) –

Return type

Dict[str, str]

disconnectNotify(self, QMetaMethod)
flags(self) QgsMapTool.Flags
Return type

QgsMapTool.Flags

formatChanged(self, layer: QgsRasterLayer)
Parameters

layer (QgsRasterLayer) –

identify(self, x: int, y: int, layerList: Iterable[QgsMapLayer] = [], mode: QgsMapToolIdentify.IdentifyMode = QgsMapToolIdentify.DefaultQgsSetting, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) List[QgsMapToolIdentify.IdentifyResult]

Performs the identification.

Parameters
  • x (int) – x coordinates of mouseEvent

  • y (int) – y coordinates of mouseEvent

  • layerList (Iterable[QgsMapLayer] = []) – Performs the identification within the given list of layers. Default value is an empty list, i.e. uses all the layers.

  • mode (QgsMapToolIdentify.IdentifyMode = QgsMapToolIdentify.DefaultQgsSetting) – Identification mode. Can use QGIS default settings or a defined mode. Default mode is DefaultQgsSetting.

  • identifyContext (QgsIdentifyContext = QgsIdentifyContext()) – Identify context object.

Returns

a list of IdentifyResult

identify(self, x: int, y: int, mode: QgsMapToolIdentify.IdentifyMode, layerType: Union[QgsMapToolIdentify.LayerType, QgsMapToolIdentify.Type] = QgsMapToolIdentify.AllLayers, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) -> List[QgsMapToolIdentify.IdentifyResult] Performs the identification. To avoid being forced to specify IdentifyMode with a list of layers this has been made private and two publics methods are offered

Parameters
  • x – x coordinates of mouseEvent

  • y – y coordinates of mouseEvent

  • mode – Identification mode. Can use QGIS default settings or a defined mode.

  • layerType – Only performs identification in a certain type of layers (raster, vector, mesh). Default value is AllLayers.

  • identifyContext – Identify context object.

Returns

a list of IdentifyResult

identify(self, geometry: QgsGeometry, mode: QgsMapToolIdentify.IdentifyMode, layerType: Union[QgsMapToolIdentify.LayerType, QgsMapToolIdentify.Type], identifyContext: QgsIdentifyContext = QgsIdentifyContext()) -> List[QgsMapToolIdentify.IdentifyResult] Performs identification based on a geometry (in map coordinates)

identify(self, geometry: QgsGeometry, mode: QgsMapToolIdentify.IdentifyMode, layerList: Iterable[QgsMapLayer], layerType: Union[QgsMapToolIdentify.LayerType, QgsMapToolIdentify.Type], identifyContext: QgsIdentifyContext = QgsIdentifyContext()) -> List[QgsMapToolIdentify.IdentifyResult] Performs identification based on a geometry (in map coordinates)

identify(self, x: int, y: int, mode: QgsMapToolIdentify.IdentifyMode, layerList: Iterable[QgsMapLayer], layerType: Union[QgsMapToolIdentify.LayerType, QgsMapToolIdentify.Type] = QgsMapToolIdentify.AllLayers, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) -> List[QgsMapToolIdentify.IdentifyResult] Performs the identification. To avoid being forced to specify IdentifyMode with a list of layers this has been made private and two publics methods are offered

Parameters
  • x – x coordinates of mouseEvent

  • y – y coordinates of mouseEvent

  • mode – Identification mode. Can use QGIS default settings or a defined mode.

  • layerList – Performs the identification within the given list of layers.

  • layerType – Only performs identification in a certain type of layers (raster, vector, mesh).

  • identifyContext – Identify context object.

Return type

List[QgsMapToolIdentify.IdentifyResult]

Returns

a list of IdentifyResult

identifyLayer(self, results: Iterable[QgsMapToolIdentify.IdentifyResult], layer: QgsMapLayer, point: QgsPointXY, viewExtent: QgsRectangle, mapUnitsPerPixel: float, layerType: Union[QgsMapToolIdentify.LayerType, QgsMapToolIdentify.Type] = QgsMapToolIdentify.AllLayers, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) bool

Call the right method depending on layer type

Parameters
Return type

bool

identifyMenu(self) QgsIdentifyMenu

Returns a pointer to the identify menu which will be used in layer selection mode this menu can also be customized

Return type

QgsIdentifyMenu

identifyMeshLayer(self, results: Iterable[QgsMapToolIdentify.IdentifyResult], layer: QgsMeshLayer, point: QgsPointXY, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) bool

Identifies data from active scalar and vector dataset from the mesh layer

Works only if layer was already rendered (triangular mesh is created)

New in version 3.6.

Parameters
Return type

bool

identifyMessage

identifyMessage(self, str) [signal]

identifyProgress

identifyProgress(self, int, int) [signal]

identifyRasterLayer(self, results: Iterable[QgsMapToolIdentify.IdentifyResult], layer: QgsRasterLayer, point: QgsPointXY, viewExtent: QgsRectangle, mapUnitsPerPixel: float, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) bool

Performs the identification against a given raster layer.

Parameters
Return type

bool

identifyVectorLayer(self, results: Iterable[QgsMapToolIdentify.IdentifyResult], layer: QgsVectorLayer, point: QgsPointXY, identifyContext: QgsIdentifyContext = QgsIdentifyContext()) bool

Performs the identification against a given vector layer.

Parameters
Return type

bool

isSignalConnected(self, QMetaMethod) bool
receivers(self, PYQT_SIGNAL) int
restoreCanvasPropertiesOverrides(self)

Clears canvas properties overrides previously set with setCanvasPropertiesOverrides()

New in version 3.4.

sender(self) QObject
senderSignalIndex(self) int
setCanvasPropertiesOverrides(self, searchRadiusMapUnits: float)

Overrides some map canvas properties inside the map tool for the upcoming identify requests.

This is useful when the identification is triggered by some other piece of GUI like a 3D map view and some properties like search radius need to be adjusted so that identification returns correct results. Currently only search radius may be overridden.

When the custom identification has finished, restoreCanvasPropertiesOverrides() should be called to erase any overrides.

New in version 3.4.

Parameters

searchRadiusMapUnits (float) –

timerEvent(self, QTimerEvent)
toCanvasCoordinates(self, point: QgsPointXY) QPoint

transformation from map coordinates to screen coordinates

toLayerCoordinates(self, layer: QgsMapLayer, point: QPoint) QgsPointXY

transformation from screen coordinates to layer’s coordinates

toLayerCoordinates(self, layer: QgsMapLayer, point: QgsPointXY) -> QgsPointXY transformation from map coordinates to layer’s coordinates

toLayerCoordinates(self, layer: QgsMapLayer, rect: QgsRectangle) -> QgsRectangle trnasformation of the rect from map coordinates to layer’s coordinates

toMapCoordinates(self, point: QPoint) QgsPointXY

transformation from screen coordinates to map coordinates

toMapCoordinates(self, layer: QgsMapLayer, point: QgsPointXY) -> QgsPointXY transformation from layer’s coordinates to map coordinates (which is different in case reprojection is used)

toMapCoordinatesV2(self, layer: QgsMapLayer, point: QgsPoint) QgsPoint

transformation from layer’s coordinates to map coordinates (which is different in case reprojection is used)

Note

available in Python bindings as toMapCoordinatesV2