mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			237 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			237 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/gui/qgsmaptoolidentify.h                                         *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsMapToolIdentify : QgsMapTool
 | 
						|
{
 | 
						|
%Docstring
 | 
						|
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)
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgsmaptoolidentify.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    enum IdentifyMode
 | 
						|
    {
 | 
						|
      DefaultQgsSetting,
 | 
						|
      ActiveLayer,
 | 
						|
      TopDownStopAtFirst,
 | 
						|
      TopDownAll,
 | 
						|
      LayerSelection
 | 
						|
    };
 | 
						|
 | 
						|
    enum Type
 | 
						|
    {
 | 
						|
      VectorLayer,
 | 
						|
      RasterLayer,
 | 
						|
      MeshLayer,
 | 
						|
      VectorTileLayer,
 | 
						|
      AllLayers
 | 
						|
    };
 | 
						|
    typedef QFlags<QgsMapToolIdentify::Type> LayerType;
 | 
						|
 | 
						|
 | 
						|
    struct IdentifyResult
 | 
						|
    {
 | 
						|
      IdentifyResult();
 | 
						|
%Docstring
 | 
						|
Constructor for IdentifyResult
 | 
						|
%End
 | 
						|
 | 
						|
      IdentifyResult( QgsMapLayer *layer, const QgsFeature &feature, const QMap< QString, QString > &derivedAttributes );
 | 
						|
      IdentifyResult( QgsMapLayer *layer, const QString &label, const QMap< QString, QString > &attributes, const QMap< QString, QString > &derivedAttributes );
 | 
						|
      IdentifyResult( QgsMapLayer *layer, const QString &label, const QgsFields &fields, const QgsFeature &feature, const QMap< QString, QString > &derivedAttributes );
 | 
						|
      QgsMapLayer *mLayer;
 | 
						|
      QString mLabel;
 | 
						|
      QgsFields mFields;
 | 
						|
      QgsFeature mFeature;
 | 
						|
      QMap< QString, QString > mAttributes;
 | 
						|
      QMap< QString, QString > mDerivedAttributes;
 | 
						|
      QMap< QString, QVariant > mParams;
 | 
						|
    };
 | 
						|
 | 
						|
    QgsMapToolIdentify( QgsMapCanvas *canvas );
 | 
						|
%Docstring
 | 
						|
constructor
 | 
						|
%End
 | 
						|
 | 
						|
    ~QgsMapToolIdentify();
 | 
						|
 | 
						|
    virtual Flags flags() const;
 | 
						|
    virtual void canvasMoveEvent( QgsMapMouseEvent *e );
 | 
						|
 | 
						|
    virtual void canvasPressEvent( QgsMapMouseEvent *e );
 | 
						|
 | 
						|
    virtual void canvasReleaseEvent( QgsMapMouseEvent *e );
 | 
						|
 | 
						|
    virtual void activate();
 | 
						|
 | 
						|
    virtual void deactivate();
 | 
						|
 | 
						|
 | 
						|
    QList<QgsMapToolIdentify::IdentifyResult> identify( int x, int y, const QList<QgsMapLayer *> &layerList = QList<QgsMapLayer *>(), IdentifyMode mode = DefaultQgsSetting, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Performs the identification.
 | 
						|
 | 
						|
:param x: x coordinates of mouseEvent
 | 
						|
:param y: y coordinates of mouseEvent
 | 
						|
:param layerList: Performs the identification within the given list of layers. Default value is an empty list, i.e. uses all the layers.
 | 
						|
:param mode: Identification mode. Can use QGIS default settings or a defined mode. Default mode is DefaultQgsSetting.
 | 
						|
:param identifyContext: Identify context object.
 | 
						|
 | 
						|
:return: a list of IdentifyResult
 | 
						|
%End
 | 
						|
 | 
						|
    QList<QgsMapToolIdentify::IdentifyResult> identify( int x, int y, IdentifyMode mode, LayerType layerType = AllLayers, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
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
 | 
						|
 | 
						|
:param x: x coordinates of mouseEvent
 | 
						|
:param y: y coordinates of mouseEvent
 | 
						|
:param mode: Identification mode. Can use QGIS default settings or a defined mode.
 | 
						|
:param layerType: Only performs identification in a certain type of layers (raster, vector, mesh). Default value is AllLayers.
 | 
						|
:param identifyContext: Identify context object.
 | 
						|
 | 
						|
:return: a list of IdentifyResult
 | 
						|
%End
 | 
						|
 | 
						|
    QList<QgsMapToolIdentify::IdentifyResult> identify( const QgsGeometry &geometry, IdentifyMode mode, LayerType layerType, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Performs identification based on a geometry (in map coordinates)
 | 
						|
%End
 | 
						|
    QList<QgsMapToolIdentify::IdentifyResult> identify( const QgsGeometry &geometry, IdentifyMode mode, const QList<QgsMapLayer *> &layerList, LayerType layerType, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Performs identification based on a geometry (in map coordinates)
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    QgsIdentifyMenu *identifyMenu();
 | 
						|
%Docstring
 | 
						|
Returns a pointer to the identify menu which will be used in layer selection mode
 | 
						|
this menu can also be customized
 | 
						|
%End
 | 
						|
 | 
						|
  public slots:
 | 
						|
    void formatChanged( QgsRasterLayer *layer );
 | 
						|
 | 
						|
  signals:
 | 
						|
    void identifyProgress( int, int );
 | 
						|
    void identifyMessage( const QString & );
 | 
						|
    void changedRasterResults( QList<QgsMapToolIdentify::IdentifyResult> & );
 | 
						|
 | 
						|
  protected:
 | 
						|
 | 
						|
    QList<QgsMapToolIdentify::IdentifyResult> identify( int x, int y, IdentifyMode mode,  const QList<QgsMapLayer *> &layerList, LayerType layerType = AllLayers, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
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
 | 
						|
 | 
						|
:param x: x coordinates of mouseEvent
 | 
						|
:param y: y coordinates of mouseEvent
 | 
						|
:param mode: Identification mode. Can use QGIS default settings or a defined mode.
 | 
						|
:param layerList: Performs the identification within the given list of layers.
 | 
						|
:param layerType: Only performs identification in a certain type of layers (raster, vector, mesh).
 | 
						|
:param identifyContext: Identify context object.
 | 
						|
 | 
						|
:return: a list of IdentifyResult
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    bool identifyLayer( QList<QgsMapToolIdentify::IdentifyResult> *results, QgsMapLayer *layer, const QgsPointXY &point, const QgsRectangle &viewExtent, double mapUnitsPerPixel, QgsMapToolIdentify::LayerType layerType = AllLayers, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Call the right method depending on layer type
 | 
						|
%End
 | 
						|
 | 
						|
    bool identifyRasterLayer( QList<QgsMapToolIdentify::IdentifyResult> *results, QgsRasterLayer *layer, QgsPointXY point, const QgsRectangle &viewExtent, double mapUnitsPerPixel, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Performs the identification against a given raster layer.
 | 
						|
 | 
						|
:param results: list of identify results
 | 
						|
:param layer: raster layer to identify from
 | 
						|
:param point: point coordinate to identify
 | 
						|
:param viewExtent: view extent
 | 
						|
:param mapUnitsPerPixel: map units per pixel value
 | 
						|
:param identifyContext: identify context object
 | 
						|
%End
 | 
						|
 | 
						|
    bool identifyVectorLayer( QList<QgsMapToolIdentify::IdentifyResult> *results, QgsVectorLayer *layer, const QgsPointXY &point, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Performs the identification against a given vector layer.
 | 
						|
 | 
						|
:param results: list of identify results
 | 
						|
:param layer: raster layer to identify from
 | 
						|
:param point: point coordinate to identify
 | 
						|
:param identifyContext: identify context object
 | 
						|
%End
 | 
						|
 | 
						|
    bool identifyMeshLayer( QList<QgsMapToolIdentify::IdentifyResult> *results, QgsMeshLayer *layer, const QgsPointXY &point, const QgsIdentifyContext &identifyContext = QgsIdentifyContext() );
 | 
						|
%Docstring
 | 
						|
Identifies data from active scalar and vector dataset from the mesh layer
 | 
						|
 | 
						|
Works only if layer was already rendered (triangular mesh is created)
 | 
						|
 | 
						|
.. versionadded:: 3.6
 | 
						|
%End
 | 
						|
 | 
						|
    QMap< QString, QString > derivedAttributesForPoint( const QgsPoint &point );
 | 
						|
%Docstring
 | 
						|
Returns derived attributes map for a clicked point in map coordinates. May be 2D or 3D point.
 | 
						|
%End
 | 
						|
 | 
						|
    void setCanvasPropertiesOverrides( double searchRadiusMapUnits );
 | 
						|
%Docstring
 | 
						|
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, :py:func:`~QgsMapToolIdentify.restoreCanvasPropertiesOverrides` should
 | 
						|
be called to erase any overrides.
 | 
						|
 | 
						|
.. seealso:: :py:func:`restoreCanvasPropertiesOverrides`
 | 
						|
 | 
						|
.. versionadded:: 3.4
 | 
						|
%End
 | 
						|
 | 
						|
    void restoreCanvasPropertiesOverrides();
 | 
						|
%Docstring
 | 
						|
Clears canvas properties overrides previously set with :py:func:`~QgsMapToolIdentify.setCanvasPropertiesOverrides`
 | 
						|
 | 
						|
.. seealso:: :py:func:`setCanvasPropertiesOverrides`
 | 
						|
 | 
						|
.. versionadded:: 3.4
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
QFlags<QgsMapToolIdentify::Type> operator|(QgsMapToolIdentify::Type f1, QFlags<QgsMapToolIdentify::Type> f2);
 | 
						|
 | 
						|
 | 
						|
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/gui/qgsmaptoolidentify.h                                         *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 |