QGIS API Documentation  master-6227475
QgsMapToolIdentify Class Reference

Map tool for identifying features in layers. More...

#include <qgsmaptoolidentify.h>

+ Inheritance diagram for QgsMapToolIdentify:
+ Collaboration diagram for QgsMapToolIdentify:

List of all members.

Classes

struct  IdentifyResult

Public Types

enum  IdentifyMode { DefaultQgsSetting = -1, ActiveLayer, TopDownStopAtFirst, TopDownAll }
enum  LayerType { AllLayers = -1, VectorLayer, RasterLayer }

Public Slots

void formatChanged (QgsRasterLayer *layer)

Signals

void changedRasterResults (QList< IdentifyResult > &)
void identifyMessage (QString)
void identifyProgress (int, int)

Public Member Functions

 QgsMapToolIdentify (QgsMapCanvas *canvas)
 constructor
virtual ~QgsMapToolIdentify ()
virtual void activate ()
 called when set as currently active map tool
virtual void canvasMoveEvent (QMouseEvent *e)
 Overridden mouse move event.
virtual void canvasPressEvent (QMouseEvent *e)
 Overridden mouse press event.
virtual void canvasReleaseEvent (QMouseEvent *e)
 Overridden mouse release event.
virtual void deactivate ()
 called when map tool is being deactivated
QList< IdentifyResultidentify (int x, int y, QList< QgsMapLayer * > layerList=QList< QgsMapLayer * >(), IdentifyMode mode=DefaultQgsSetting)
 Performs the identification.
QList< IdentifyResultidentify (int x, int y, IdentifyMode mode, LayerType layerType=AllLayers)
 Performs the identification.

Private Member Functions

virtual void convertMeasurement (QgsDistanceArea &calc, double &measure, QGis::UnitType &u, bool isArea)
 Private helper.
virtual QGis::UnitType displayUnits ()
 Transforms the measurements of derived attributes in the desired units.
QMap< QString, QString > featureDerivedAttributes (QgsFeature *feature, QgsMapLayer *layer)
QList< IdentifyResultidentify (int x, int y, IdentifyMode mode, QList< QgsMapLayer * > layerList, LayerType layerType=AllLayers)
 Performs the identification.
bool identifyLayer (QList< IdentifyResult > *results, QgsMapLayer *layer, QgsPoint point, QgsRectangle viewExtent, double mapUnitsPerPixel, LayerType layerType=AllLayers)
 call the right method depending on layer type
bool identifyRasterLayer (QList< IdentifyResult > *results, QgsRasterLayer *layer, QgsPoint point, QgsRectangle viewExtent, double mapUnitsPerPixel)
bool identifyVectorLayer (QList< IdentifyResult > *results, QgsVectorLayer *layer, QgsPoint point)

Private Attributes

QgsRectangle mLastExtent
double mLastMapUnitsPerPixel
QgsPoint mLastPoint

Detailed Description

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 to edit values when vector layer is in editing mode)

Definition at line 43 of file qgsmaptoolidentify.h.


Member Enumeration Documentation

Enumerator:
DefaultQgsSetting 
ActiveLayer 
TopDownStopAtFirst 
TopDownAll 

Definition at line 49 of file qgsmaptoolidentify.h.

Enumerator:
AllLayers 
VectorLayer 
RasterLayer 

Definition at line 57 of file qgsmaptoolidentify.h.


Constructor & Destructor Documentation

constructor

Definition at line 45 of file qgsmaptoolidentify.cpp.

References identify_cursor, and QgsMapTool::mCursor.

Definition at line 53 of file qgsmaptoolidentify.cpp.


Member Function Documentation

void QgsMapToolIdentify::activate ( ) [virtual]

called when set as currently active map tool

Reimplemented from QgsMapTool.

Definition at line 159 of file qgsmaptoolidentify.cpp.

void QgsMapToolIdentify::canvasMoveEvent ( QMouseEvent *  e) [virtual]

Overridden mouse move event.

Reimplemented from QgsMapTool.

Definition at line 57 of file qgsmaptoolidentify.cpp.

void QgsMapToolIdentify::canvasPressEvent ( QMouseEvent *  e) [virtual]

Overridden mouse press event.

Reimplemented from QgsMapTool.

Definition at line 62 of file qgsmaptoolidentify.cpp.

void QgsMapToolIdentify::canvasReleaseEvent ( QMouseEvent *  e) [virtual]

Overridden mouse release event.

Reimplemented from QgsMapTool.

Definition at line 67 of file qgsmaptoolidentify.cpp.

Referenced by formatChanged().

void QgsMapToolIdentify::convertMeasurement ( QgsDistanceArea calc,
double &  measure,
QGis::UnitType u,
bool  isArea 
) [private, virtual]
void QgsMapToolIdentify::deactivate ( ) [virtual]

called when map tool is being deactivated

Reimplemented from QgsMapTool.

Definition at line 164 of file qgsmaptoolidentify.cpp.

Transforms the measurements of derived attributes in the desired units.

Definition at line 535 of file qgsmaptoolidentify.cpp.

References QgsMapCanvas::mapUnits(), and QgsMapTool::mCanvas.

Referenced by convertMeasurement().

QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify ( int  x,
int  y,
QList< QgsMapLayer * >  layerList = QList<QgsMapLayer*>(),
IdentifyMode  mode = DefaultQgsSetting 
)

Performs the identification.

Parameters:
xx coordinates of mouseEvent
yy coordinates of mouseEvent
layerListPerforms the identification within the given list of layers. Default value is an empty list, i.e. uses all the layers.
modeIdentification mode. Can use Qgis default settings or a defined mode. Default mode is DefaultQgsSetting.
Returns:
a list of IdentifyResult

Definition at line 72 of file qgsmaptoolidentify.cpp.

References AllLayers.

Referenced by identify().

Performs the identification.

To avoid beeing forced to specify IdentifyMode with a list of layers this has been made private and two publics methods are offered

Parameters:
xx coordinates of mouseEvent
yy coordinates of mouseEvent
modeIdentification mode. Can use Qgis default settings or a defined mode.
layerTypeOnly performs identification in a certain type of layers (raster, vector). Default value is AllLayers.
Returns:
a list of IdentifyResult

Definition at line 77 of file qgsmaptoolidentify.cpp.

References identify().

QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify ( int  x,
int  y,
IdentifyMode  mode,
QList< QgsMapLayer * >  layerList,
LayerType  layerType = AllLayers 
) [private]

Performs the identification.

To avoid beeing forced to specify IdentifyMode with a list of layers this has been made private and two publics methods are offered

Parameters:
xx coordinates of mouseEvent
yy coordinates of mouseEvent
modeIdentification mode. Can use Qgis default settings or a defined mode.
layerListPerforms the identification within the given list of layers.
layerTypeOnly performs identification in a certain type of layers (raster, vector).
Returns:
true if identification succeeded and a feature has been found, false otherwise.

Definition at line 82 of file qgsmaptoolidentify.cpp.

References ActiveLayer, QgsMapCanvas::currentLayer(), DefaultQgsSetting, QgsMapCanvas::extent(), QgsMapCanvas::getCoordinateTransform(), QgsMapLayer::id(), identifyLayer(), identifyMessage(), identifyProgress(), QgsProject::instance(), QgsMapCanvas::isDrawing(), QgsMapCanvas::layer(), QgsMapCanvas::layerCount(), QgsMapCanvas::mapUnitsPerPixel(), QgsMapTool::mCanvas, mLastExtent, mLastMapUnitsPerPixel, mLastPoint, QgsMapLayer::name(), QgsProject::readListEntry(), QgsMapToPixel::toMapCoordinates(), TopDownStopAtFirst, and tr.

bool QgsMapToolIdentify::identifyLayer ( QList< IdentifyResult > *  results,
QgsMapLayer layer,
QgsPoint  point,
QgsRectangle  viewExtent,
double  mapUnitsPerPixel,
LayerType  layerType = AllLayers 
) [private]

call the right method depending on layer type

Definition at line 169 of file qgsmaptoolidentify.cpp.

References AllLayers, identifyRasterLayer(), identifyVectorLayer(), QgsMapLayer::RasterLayer, RasterLayer, QgsMapLayer::type(), QgsMapLayer::VectorLayer, and VectorLayer.

Referenced by identify().

void QgsMapToolIdentify::identifyMessage ( QString  ) [signal]

Referenced by identify().

void QgsMapToolIdentify::identifyProgress ( int  ,
int   
) [signal]

Referenced by identify().

bool QgsMapToolIdentify::identifyRasterLayer ( QList< IdentifyResult > *  results,
QgsRasterLayer layer,
QgsPoint  point,
QgsRectangle  viewExtent,
double  mapUnitsPerPixel 
) [private]

Member Data Documentation

Definition at line 161 of file qgsmaptoolidentify.h.

Referenced by formatChanged(), and identify().

Definition at line 159 of file qgsmaptoolidentify.h.

Referenced by formatChanged(), and identify().

Definition at line 157 of file qgsmaptoolidentify.h.

Referenced by formatChanged(), and identify().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines