QGIS API Documentation
3.18.1-Zürich (202f1bf7e5)
|
Map tool for identifying features in layers. More...
#include <qgsmaptoolidentify.h>
Classes | |
struct | IdentifyResult |
Public Types | |
enum | IdentifyMode { DefaultQgsSetting = -1 , ActiveLayer , TopDownStopAtFirst , TopDownAll , LayerSelection } |
enum | Type { VectorLayer = 1 , RasterLayer = 2 , MeshLayer = 4 , VectorTileLayer = 8 , PointCloudLayer = 16 , AllLayers = VectorLayer | RasterLayer | MeshLayer | VectorTileLayer | PointCloudLayer } |
Public Types inherited from QgsMapTool | |
enum | Flag { Transient = 1 << 1 , EditTool = 1 << 2 , AllowZoomRect = 1 << 3 , ShowContextMenu = 1 << 4 } |
Enumeration of flags that adjust the way the map tool operates. More... | |
Public Slots | |
void | formatChanged (QgsRasterLayer *layer) |
Signals | |
void | changedRasterResults (QList< QgsMapToolIdentify::IdentifyResult > &) |
void | identifyMessage (const QString &) |
void | identifyProgress (int, int) |
Signals inherited from QgsMapTool | |
void | activated () |
signal emitted once the map tool is activated More... | |
void | deactivated () |
signal emitted once the map tool is deactivated More... | |
void | messageDiscarded () |
emit signal to clear previous message More... | |
void | messageEmitted (const QString &message, Qgis::MessageLevel=Qgis::Info) |
emit a message More... | |
Public Member Functions | |
QgsMapToolIdentify (QgsMapCanvas *canvas) | |
constructor More... | |
~QgsMapToolIdentify () override | |
void | activate () override |
called when set as currently active map tool More... | |
void | canvasMoveEvent (QgsMapMouseEvent *e) override |
Mouse move event for overriding. Default implementation does nothing. More... | |
void | canvasPressEvent (QgsMapMouseEvent *e) override |
Mouse press event for overriding. Default implementation does nothing. More... | |
void | canvasReleaseEvent (QgsMapMouseEvent *e) override |
Mouse release event for overriding. Default implementation does nothing. More... | |
void | deactivate () override |
called when map tool is being deactivated More... | |
Flags | flags () const override |
Returns the flags for the map tool. More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (const QgsGeometry &geometry, IdentifyMode mode, const QList< QgsMapLayer * > &layerList, LayerType layerType, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs identification based on a geometry (in map coordinates) More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (const QgsGeometry &geometry, IdentifyMode mode, LayerType layerType, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs identification based on a geometry (in map coordinates) More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, const QList< QgsMapLayer * > &layerList=QList< QgsMapLayer * >(), IdentifyMode mode=DefaultQgsSetting, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification. More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, IdentifyMode mode, LayerType layerType=AllLayers, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification. More... | |
QgsIdentifyMenu * | identifyMenu () |
Returns a pointer to the identify menu which will be used in layer selection mode this menu can also be customized. More... | |
Public Member Functions inherited from QgsMapTool | |
~QgsMapTool () override | |
QAction * | action () |
Returns associated action with map tool or nullptr if no action is associated. More... | |
QAbstractButton * | button () |
Returns associated button with map tool or nullptr if no button is associated. More... | |
QgsMapCanvas * | canvas () const |
returns pointer to the tool's map canvas More... | |
virtual void | canvasDoubleClickEvent (QgsMapMouseEvent *e) |
Mouse double-click event for overriding. Default implementation does nothing. More... | |
virtual void | clean () |
convenient method to clean members More... | |
virtual bool | gestureEvent (QGestureEvent *e) |
gesture event for overriding. Default implementation does nothing. More... | |
bool | isActive () const |
Returns if the current map tool active on the map canvas. More... | |
virtual void | keyPressEvent (QKeyEvent *e) |
Key event for overriding. Default implementation does nothing. More... | |
virtual void | keyReleaseEvent (QKeyEvent *e) |
Key event for overriding. Default implementation does nothing. More... | |
virtual void | populateContextMenu (QMenu *menu) |
Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click. More... | |
virtual bool | populateContextMenuWithEvent (QMenu *menu, QgsMapMouseEvent *event) |
Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click. More... | |
void | setAction (QAction *action) |
Use this to associate a QAction to this maptool. More... | |
void | setButton (QAbstractButton *button) |
Use this to associate a button to this maptool. More... | |
virtual void | setCursor (const QCursor &cursor) |
Sets a user defined cursor. More... | |
QString | toolName () |
Emit map tool changed with the old tool. More... | |
virtual void | wheelEvent (QWheelEvent *e) |
Mouse wheel event for overriding. Default implementation does nothing. More... | |
Static Public Member Functions | |
static void | fromPointCloudIdentificationToIdentifyResults (QgsPointCloudLayer *layer, const QVector< QVariantMap > &identified, QList< QgsMapToolIdentify::IdentifyResult > &results) |
Converts point cloud identification results from variant maps to QgsMapToolIdentify::IdentifyResult and apply some formatting. More... | |
Static Public Member Functions inherited from QgsMapTool | |
static double | searchRadiusMM () |
Gets search radius in mm. More... | |
static double | searchRadiusMU (const QgsRenderContext &context) |
Gets search radius in map units for given context. More... | |
static double | searchRadiusMU (QgsMapCanvas *canvas) |
Gets search radius in map units for given canvas. More... | |
Protected Member Functions | |
QMap< QString, QString > | derivedAttributesForPoint (const QgsPoint &point) |
Returns derived attributes map for a clicked point in map coordinates. May be 2D or 3D point. More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, IdentifyMode mode, const QList< QgsMapLayer * > &layerList, LayerType layerType=AllLayers, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification. More... | |
bool | identifyLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsMapLayer *layer, const QgsPointXY &point, const QgsRectangle &viewExtent, double mapUnitsPerPixel, QgsMapToolIdentify::LayerType layerType=AllLayers, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Call the right method depending on layer type. More... | |
bool | identifyMeshLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsMeshLayer *layer, const QgsPointXY &point, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Identifies data from active scalar and vector dataset from the mesh layer. More... | |
bool | identifyRasterLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsRasterLayer *layer, QgsPointXY point, const QgsRectangle &viewExtent, double mapUnitsPerPixel, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification against a given raster layer. More... | |
bool | identifyVectorLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsVectorLayer *layer, const QgsPointXY &point, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification against a given vector layer. More... | |
void | restoreCanvasPropertiesOverrides () |
Clears canvas properties overrides previously set with setCanvasPropertiesOverrides() More... | |
void | setCanvasPropertiesOverrides (double searchRadiusMapUnits) |
Overrides some map canvas properties inside the map tool for the upcoming identify requests. More... | |
Protected Member Functions inherited from QgsMapTool | |
QgsMapTool (QgsMapCanvas *canvas) | |
Constructor takes a map canvas as a parameter. More... | |
QPoint | toCanvasCoordinates (const QgsPointXY &point) const |
Transforms a point from map coordinates to screen coordinates. More... | |
QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
Transforms a point from map coordinates to layer coordinates. More... | |
QgsRectangle | toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect) |
Transforms a rect from map coordinates to layer coordinates. More... | |
QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, QPoint point) |
Transforms a point from screen coordinates to layer coordinates. More... | |
QgsPoint | toMapCoordinates (const QgsMapLayer *layer, const QgsPoint &point) |
Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used). More... | |
QgsPointXY | toMapCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used). More... | |
QgsPointXY | toMapCoordinates (QPoint point) |
Transforms a point from screen coordinates to map coordinates. More... | |
Protected Attributes | |
QgsIdentifyMenu * | mIdentifyMenu = nullptr |
Protected Attributes inherited from QgsMapTool | |
QAction * | mAction = nullptr |
Optional pointer to an action that will be checked on map tool activation and unchecked on map tool deactivation. More... | |
QAbstractButton * | mButton = nullptr |
Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation. More... | |
QgsMapCanvas * | mCanvas = nullptr |
The pointer to the map canvas. More... | |
QCursor | mCursor |
The cursor used in the map tool. More... | |
QString | mToolName |
The translated name of the map tool. More... | |
Map tool for identifying features in layers.
after selecting a point, performs the identification:
Definition at line 51 of file qgsmaptoolidentify.h.
Enumerator | |
---|---|
DefaultQgsSetting | |
ActiveLayer | |
TopDownStopAtFirst | |
TopDownAll | |
LayerSelection |
Definition at line 57 of file qgsmaptoolidentify.h.
Enumerator | |
---|---|
VectorLayer | |
RasterLayer | |
MeshLayer |
|
VectorTileLayer |
|
PointCloudLayer |
|
AllLayers |
Definition at line 67 of file qgsmaptoolidentify.h.
QgsMapToolIdentify::QgsMapToolIdentify | ( | QgsMapCanvas * | canvas | ) |
constructor
Definition at line 64 of file qgsmaptoolidentify.cpp.
|
override |
Definition at line 73 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
called when set as currently active map tool
Reimplemented from QgsMapTool.
Definition at line 205 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse move event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Definition at line 78 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse press event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Definition at line 83 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse release event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Reimplemented in QgsMapToolIdentifyFeature.
Definition at line 88 of file qgsmaptoolidentify.cpp.
|
signal |
|
overridevirtual |
called when map tool is being deactivated
Reimplemented from QgsMapTool.
Definition at line 210 of file qgsmaptoolidentify.cpp.
|
protected |
Returns derived attributes map for a clicked point in map coordinates. May be 2D or 3D point.
Definition at line 527 of file qgsmaptoolidentify.cpp.
|
inlineoverridevirtual |
Returns the flags for the map tool.
Reimplemented from QgsMapTool.
Definition at line 107 of file qgsmaptoolidentify.h.
|
slot |
Definition at line 1168 of file qgsmaptoolidentify.cpp.
|
static |
Converts point cloud identification results from variant maps to QgsMapToolIdentify::IdentifyResult and apply some formatting.
Definition at line 1177 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | const QgsGeometry & | geometry, |
IdentifyMode | mode, | ||
const QList< QgsMapLayer * > & | layerList, | ||
LayerType | layerType, | ||
const QgsIdentifyContext & | identifyContext = QgsIdentifyContext() |
||
) |
Performs identification based on a geometry (in map coordinates)
Definition at line 113 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | const QgsGeometry & | geometry, |
IdentifyMode | mode, | ||
LayerType | layerType, | ||
const QgsIdentifyContext & | identifyContext = QgsIdentifyContext() |
||
) |
Performs identification based on a geometry (in map coordinates)
Definition at line 108 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | int | x, |
int | y, | ||
const QList< QgsMapLayer * > & | layerList = QList<QgsMapLayer *>() , |
||
IdentifyMode | mode = DefaultQgsSetting , |
||
const QgsIdentifyContext & | identifyContext = QgsIdentifyContext() |
||
) |
Performs the identification.
x | x coordinates of mouseEvent |
y | y coordinates of mouseEvent |
layerList | Performs the identification within the given list of layers. Default value is an empty list, i.e. uses all the layers. |
mode | Identification mode. Can use QGIS default settings or a defined mode. Default mode is DefaultQgsSetting. |
identifyContext | Identify context object. |
Definition at line 93 of file qgsmaptoolidentify.cpp.
|
protected |
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
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. |
Definition at line 103 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | int | x, |
int | y, | ||
IdentifyMode | mode, | ||
LayerType | layerType = AllLayers , |
||
const QgsIdentifyContext & | identifyContext = QgsIdentifyContext() |
||
) |
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
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. |
Definition at line 98 of file qgsmaptoolidentify.cpp.
|
protected |
Call the right method depending on layer type.
Definition at line 215 of file qgsmaptoolidentify.cpp.
|
inline |
Returns a pointer to the identify menu which will be used in layer selection mode this menu can also be customized.
Definition at line 148 of file qgsmaptoolidentify.h.
|
protected |
Identifies data from active scalar and vector dataset from the mesh layer.
Works only if layer was already rendered (triangular mesh is created)
Definition at line 259 of file qgsmaptoolidentify.cpp.
|
signal |
|
signal |
|
protected |
Performs the identification against a given raster layer.
results | list of identify results |
layer | raster layer to identify from |
point | point coordinate to identify |
viewExtent | view extent |
mapUnitsPerPixel | map units per pixel value |
identifyContext | identify context object |
Definition at line 917 of file qgsmaptoolidentify.cpp.
|
protected |
Performs the identification against a given vector layer.
results | list of identify results |
layer | raster layer to identify from |
point | point coordinate to identify |
identifyContext | identify context object |
Definition at line 248 of file qgsmaptoolidentify.cpp.
|
protected |
Clears canvas properties overrides previously set with setCanvasPropertiesOverrides()
Definition at line 200 of file qgsmaptoolidentify.cpp.
|
protected |
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.
Definition at line 195 of file qgsmaptoolidentify.cpp.
|
protected |
Definition at line 181 of file qgsmaptoolidentify.h.