QGIS API Documentation 3.41.0-Master (3440c17df1d)
|
Map tool for identifying features in layers. More...
#include <qgsmaptoolidentify.h>
Classes | |
struct | IdentifyResult |
Public Types | |
enum | IdentifyMode { DefaultQgsSetting = -1 , ActiveLayer , TopDownStopAtFirst , TopDownAll , LayerSelection } |
typedef QFlags< Type > | LayerType |
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... | |
typedef QFlags< Flag > | Flags |
Public Slots | |
void | formatChanged (QgsRasterLayer *layer) |
Signals | |
void | changedRasterResults (QList< QgsMapToolIdentify::IdentifyResult > &results) |
Emitted when the format of raster results is changed and need to be updated in user-facing displays. | |
void | identifyMessage (const QString &message) |
Emitted when the identify operation needs to show a user-facing message. | |
void | identifyProgress (int processed, int total) |
Emitted when the identify action progresses. | |
Signals inherited from QgsMapTool | |
void | activated () |
signal emitted once the map tool is activated | |
void | deactivated () |
signal emitted once the map tool is deactivated | |
void | messageDiscarded () |
emit signal to clear previous message | |
void | messageEmitted (const QString &message, Qgis::MessageLevel=Qgis::MessageLevel::Info) |
emit a message | |
void | reactivated () |
Public Member Functions | |
QgsMapToolIdentify (QgsMapCanvas *canvas) | |
constructor | |
~QgsMapToolIdentify () override | |
void | activate () override |
called when set as currently active map tool | |
void | canvasMoveEvent (QgsMapMouseEvent *e) override |
Mouse move event for overriding. Default implementation does nothing. | |
void | canvasPressEvent (QgsMapMouseEvent *e) override |
Mouse press event for overriding. Default implementation does nothing. | |
void | canvasReleaseEvent (QgsMapMouseEvent *e) override |
Mouse release event for overriding. Default implementation does nothing. | |
void | deactivate () override |
called when map tool is being deactivated | |
Flags | flags () const override |
Returns the flags for the map tool. | |
void | fromElevationProfileLayerIdentificationToIdentifyResults (QgsMapLayer *layer, const QVector< QVariantMap > &identified, QList< QgsMapToolIdentify::IdentifyResult > &results) |
Converts elevation profile identification results from variant maps to QgsMapToolIdentify::IdentifyResult and apply some formatting. | |
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) | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (const QgsGeometry &geometry, IdentifyMode mode, LayerType layerType, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs identification based on a geometry (in map coordinates) | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, const QList< QgsMapLayer * > &layerList=QList< QgsMapLayer * >(), IdentifyMode mode=DefaultQgsSetting, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification. | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, IdentifyMode mode, LayerType layerType=AllLayers, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification. | |
QgsIdentifyMenu * | identifyMenu () |
Returns a pointer to the identify menu which will be used in layer selection mode this menu can also be customized. | |
Public Member Functions inherited from QgsMapTool | |
~QgsMapTool () override | |
QAction * | action () |
Returns associated action with map tool or nullptr if no action is associated. | |
QAbstractButton * | button () |
Returns associated button with map tool or nullptr if no button is associated. | |
QgsMapCanvas * | canvas () const |
returns pointer to the tool's map canvas | |
virtual void | canvasDoubleClickEvent (QgsMapMouseEvent *e) |
Mouse double-click event for overriding. Default implementation does nothing. | |
virtual bool | canvasToolTipEvent (QHelpEvent *e) |
Tooltip event for overriding. | |
virtual void | clean () |
convenient method to clean members | |
virtual bool | gestureEvent (QGestureEvent *e) |
gesture event for overriding. Default implementation does nothing. | |
bool | isActive () const |
Returns if the current map tool active on the map canvas. | |
virtual void | keyPressEvent (QKeyEvent *e) |
Key event for overriding. Default implementation does nothing. | |
virtual void | keyReleaseEvent (QKeyEvent *e) |
Key event for overriding. Default implementation does nothing. | |
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. | |
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. | |
virtual void | reactivate () |
Called when the map tool is being activated while it is already active. | |
void | setAction (QAction *action) |
Use this to associate a QAction to this maptool. | |
void | setButton (QAbstractButton *button) |
Use this to associate a button to this maptool. | |
virtual void | setCursor (const QCursor &cursor) |
Sets a user defined cursor. | |
QgsPointXY | toMapCoordinates (QPoint point) |
Transforms a point from screen coordinates to map coordinates. | |
QString | toolName () |
Emit map tool changed with the old tool. | |
virtual void | wheelEvent (QWheelEvent *e) |
Mouse wheel event for overriding. Default implementation does nothing. | |
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. | |
Static Public Member Functions inherited from QgsMapTool | |
static double | searchRadiusMM () |
Gets search radius in mm. | |
static double | searchRadiusMU (const QgsRenderContext &context) |
Gets search radius in map units for given context. | |
static double | searchRadiusMU (QgsMapCanvas *canvas) |
Gets search radius in map units for given canvas. | |
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. | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, IdentifyMode mode, const QList< QgsMapLayer * > &layerList, LayerType layerType=AllLayers, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification. | |
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. | |
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. | |
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. | |
bool | identifyVectorLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsVectorLayer *layer, const QgsPointXY &point, const QgsIdentifyContext &identifyContext=QgsIdentifyContext()) |
Performs the identification against a given vector layer. | |
void | restoreCanvasPropertiesOverrides () |
Clears canvas properties overrides previously set with setCanvasPropertiesOverrides() | |
void | setCanvasPropertiesOverrides (double searchRadiusMapUnits) |
Overrides some map canvas properties inside the map tool for the upcoming identify requests. | |
Protected Member Functions inherited from QgsMapTool | |
QgsMapTool (QgsMapCanvas *canvas) | |
Constructor takes a map canvas as a parameter. | |
QgsMapLayer * | layer (const QString &id) |
Returns the map layer with the matching ID, or nullptr if no layers could be found. | |
void | setToolName (const QString &name) |
Sets the tool's name. | |
QPoint | toCanvasCoordinates (const QgsPointXY &point) const |
Transforms a point from map coordinates to screen coordinates. | |
QgsPoint | toLayerCoordinates (const QgsMapLayer *layer, const QgsPoint &point) |
Transforms a point from map coordinates to layer coordinates. | |
QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
Transforms a point from map coordinates to layer coordinates. | |
QgsRectangle | toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect) |
Transforms a rect from map coordinates to layer coordinates. | |
QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, QPoint point) |
Transforms a point from screen coordinates to layer coordinates. | |
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). | |
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). | |
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. | |
QAbstractButton * | mButton = nullptr |
Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation. | |
QPointer< QgsMapCanvas > | mCanvas |
The pointer to the map canvas. | |
QCursor | mCursor |
The cursor used in the map tool. | |
QString | mToolName |
The translated name of the map tool. | |
Map tool for identifying features in layers.
after selecting a point, performs the identification:
Definition at line 53 of file qgsmaptoolidentify.h.
typedef QFlags< Type > QgsMapToolIdentify::LayerType |
Definition at line 78 of file qgsmaptoolidentify.h.
Enumerator | |
---|---|
DefaultQgsSetting | |
ActiveLayer | |
TopDownStopAtFirst | |
TopDownAll | |
LayerSelection |
Definition at line 59 of file qgsmaptoolidentify.h.
Enumerator | |
---|---|
VectorLayer | |
RasterLayer | |
MeshLayer |
|
VectorTileLayer |
|
PointCloudLayer |
|
AllLayers |
Definition at line 69 of file qgsmaptoolidentify.h.
QgsMapToolIdentify::QgsMapToolIdentify | ( | QgsMapCanvas * | canvas | ) |
constructor
Definition at line 66 of file qgsmaptoolidentify.cpp.
|
override |
Definition at line 75 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
called when set as currently active map tool
Reimplemented from QgsMapTool.
Definition at line 202 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse move event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Definition at line 80 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse press event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Definition at line 85 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse release event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Reimplemented in QgsMapToolIdentifyFeature.
Definition at line 90 of file qgsmaptoolidentify.cpp.
|
signal |
Emitted when the format of raster results is changed and need to be updated in user-facing displays.
|
overridevirtual |
called when map tool is being deactivated
Reimplemented from QgsMapTool.
Definition at line 207 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 565 of file qgsmaptoolidentify.cpp.
|
inlineoverridevirtual |
Returns the flags for the map tool.
Reimplemented from QgsMapTool.
Definition at line 109 of file qgsmaptoolidentify.h.
|
slot |
Definition at line 1478 of file qgsmaptoolidentify.cpp.
void QgsMapToolIdentify::fromElevationProfileLayerIdentificationToIdentifyResults | ( | QgsMapLayer * | layer, |
const QVector< QVariantMap > & | identified, | ||
QList< QgsMapToolIdentify::IdentifyResult > & | results | ||
) |
Converts elevation profile identification results from variant maps to QgsMapToolIdentify::IdentifyResult and apply some formatting.
Definition at line 1567 of file qgsmaptoolidentify.cpp.
|
static |
Converts point cloud identification results from variant maps to QgsMapToolIdentify::IdentifyResult and apply some formatting.
Definition at line 1487 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 115 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 110 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 95 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 105 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 100 of file qgsmaptoolidentify.cpp.
|
protected |
Call the right method depending on layer type.
Definition at line 212 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 150 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 277 of file qgsmaptoolidentify.cpp.
|
signal |
Emitted when the identify operation needs to show a user-facing message.
message | Message to show to the user |
|
signal |
Emitted when the identify action progresses.
processed | number of objects processed so far |
total | total number of objects to process |
|
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 1100 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 266 of file qgsmaptoolidentify.cpp.
|
protected |
Clears canvas properties overrides previously set with setCanvasPropertiesOverrides()
Definition at line 197 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 192 of file qgsmaptoolidentify.cpp.
|
protected |
Definition at line 208 of file qgsmaptoolidentify.h.