QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
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, AllLayers = VectorLayer | RasterLayer | MeshLayer } |
Public Types inherited from QgsMapTool | |
enum | Flag { Transient = 1 << 1, EditTool = 1 << 2, AllowZoomRect = 1 << 3 } |
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 (int x, int y, const QList< QgsMapLayer *> &layerList=QList< QgsMapLayer *>(), IdentifyMode mode=DefaultQgsSetting) |
Performs the identification. More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (int x, int y, IdentifyMode mode, LayerType layerType=AllLayers) |
Performs the identification. More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (const QgsGeometry &geometry, IdentifyMode mode, LayerType layerType) |
Performs identification based on a geometry (in map coordinates) More... | |
QList< QgsMapToolIdentify::IdentifyResult > | identify (const QgsGeometry &geometry, IdentifyMode mode, const QList< QgsMapLayer *> &layerList, LayerType layerType) |
Performs identification based on a geometry (in map coordinates) 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 () |
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... | |
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... | |
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) |
Performs the identification. More... | |
bool | identifyLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsMapLayer *layer, const QgsPointXY &point, const QgsRectangle &viewExtent, double mapUnitsPerPixel, QgsMapToolIdentify::LayerType layerType=AllLayers) |
Call the right method depending on layer type. More... | |
bool | identifyMeshLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsMeshLayer *layer, const QgsPointXY &point) |
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) |
bool | identifyVectorLayer (QList< QgsMapToolIdentify::IdentifyResult > *results, QgsVectorLayer *layer, const QgsPointXY &point) |
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 map canvas as a parameter More... | |
QPoint | toCanvasCoordinates (const QgsPointXY &point) |
transformation from map coordinates to screen coordinates More... | |
QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, QPoint point) |
transformation from screen coordinates to layer's coordinates More... | |
QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
transformation from map coordinates to layer's coordinates More... | |
QgsRectangle | toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect) |
trnasformation of the rect from map coordinates to layer's coordinates More... | |
QgsPointXY | toMapCoordinates (QPoint point) |
transformation from screen coordinates to map coordinates More... | |
QgsPointXY | toMapCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
transformation from layer's coordinates to map coordinates (which is different in case reprojection is used) More... | |
QgsPoint | toMapCoordinates (const QgsMapLayer *layer, const QgsPoint &point) |
transformation from layer's coordinates to map coordinates (which is different in case reprojection is used) More... | |
Protected Attributes | |
QgsIdentifyMenu * | mIdentifyMenu = nullptr |
Protected Attributes inherited from QgsMapTool | |
QAction * | mAction = nullptr |
optionally map tool can have pointer to action which will be used to set that action as active More... | |
QAbstractButton * | mButton = nullptr |
optionally map tool can have pointer to a button which will be used to set that action as active More... | |
QgsMapCanvas * | mCanvas = nullptr |
pointer to map canvas More... | |
QCursor | mCursor |
cursor used in map tool More... | |
QString | mToolName |
translated name of the map tool More... | |
Additional Inherited Members | |
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... | |
Map tool for identifying features in layers.
after selecting a point, performs the identification:
Definition at line 46 of file qgsmaptoolidentify.h.
Enumerator | |
---|---|
DefaultQgsSetting | |
ActiveLayer | |
TopDownStopAtFirst | |
TopDownAll | |
LayerSelection |
Definition at line 52 of file qgsmaptoolidentify.h.
Enumerator | |
---|---|
VectorLayer | |
RasterLayer | |
MeshLayer |
|
AllLayers |
Definition at line 62 of file qgsmaptoolidentify.h.
QgsMapToolIdentify::QgsMapToolIdentify | ( | QgsMapCanvas * | canvas | ) |
constructor
Definition at line 55 of file qgsmaptoolidentify.cpp.
|
override |
Definition at line 64 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
called when set as currently active map tool
Reimplemented from QgsMapTool.
Definition at line 194 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse move event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Definition at line 69 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse press event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Definition at line 74 of file qgsmaptoolidentify.cpp.
|
overridevirtual |
Mouse release event for overriding. Default implementation does nothing.
Reimplemented from QgsMapTool.
Reimplemented in QgsMapToolIdentifyFeature.
Definition at line 79 of file qgsmaptoolidentify.cpp.
|
signal |
|
overridevirtual |
called when map tool is being deactivated
Reimplemented from QgsMapTool.
Definition at line 199 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 317 of file qgsmaptoolidentify.cpp.
|
inlineoverridevirtual |
Returns the flags for the map tool.
Reimplemented from QgsMapTool.
Definition at line 100 of file qgsmaptoolidentify.h.
|
slot |
Definition at line 917 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | int | x, |
int | y, | ||
const QList< QgsMapLayer *> & | layerList = QList<QgsMapLayer *>() , |
||
IdentifyMode | mode = DefaultQgsSetting |
||
) |
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. |
Definition at line 84 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | int | x, |
int | y, | ||
IdentifyMode | mode, | ||
LayerType | layerType = AllLayers |
||
) |
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. |
Definition at line 89 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | const QgsGeometry & | geometry, |
IdentifyMode | mode, | ||
LayerType | layerType | ||
) |
Performs identification based on a geometry (in map coordinates)
Definition at line 99 of file qgsmaptoolidentify.cpp.
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | const QgsGeometry & | geometry, |
IdentifyMode | mode, | ||
const QList< QgsMapLayer *> & | layerList, | ||
LayerType | layerType | ||
) |
Performs identification based on a geometry (in map coordinates)
Definition at line 104 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). |
Definition at line 94 of file qgsmaptoolidentify.cpp.
|
protected |
Call the right method depending on layer type.
Definition at line 204 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 138 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 240 of file qgsmaptoolidentify.cpp.
|
signal |
|
signal |
|
protected |
Definition at line 672 of file qgsmaptoolidentify.cpp.
|
protected |
Definition at line 229 of file qgsmaptoolidentify.cpp.
|
protected |
Clears canvas properties overrides previously set with setCanvasPropertiesOverrides()
Definition at line 189 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 184 of file qgsmaptoolidentify.cpp.
|
protected |
Definition at line 163 of file qgsmaptoolidentify.h.