QGIS API Documentation
2.2.0-Valmiera
|
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 | LayerType { AllLayers = -1, VectorLayer, RasterLayer } |
Public Slots | |
void | formatChanged (QgsRasterLayer *layer) |
Signals | |
void | identifyProgress (int, int) |
void | identifyMessage (QString) |
void | changedRasterResults (QList< IdentifyResult > &) |
Public Member Functions | |
QgsMapToolIdentify (QgsMapCanvas *canvas) | |
constructor | |
virtual | ~QgsMapToolIdentify () |
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 | activate () |
called when set as currently active map tool | |
virtual void | deactivate () |
called when map tool is being deactivated | |
QList< IdentifyResult > | identify (int x, int y, QList< QgsMapLayer * > layerList=QList< QgsMapLayer * >(), IdentifyMode mode=DefaultQgsSetting) |
Performs the identification. | |
QList< IdentifyResult > | identify (int x, int y, IdentifyMode mode, LayerType layerType=AllLayers) |
Performs the identification. | |
Public Member Functions inherited from QgsMapTool | |
virtual | ~QgsMapTool () |
virtual destructor | |
virtual void | canvasDoubleClickEvent (QMouseEvent *e) |
Mouse double click event for overriding. Default implementation does nothing. | |
virtual void | wheelEvent (QWheelEvent *e) |
Mouse wheel event for overriding. | |
virtual void | keyPressEvent (QKeyEvent *e) |
Key event for overriding. Default implementation does nothing. | |
virtual void | keyReleaseEvent (QKeyEvent *e) |
Key event for overriding. | |
virtual void | renderComplete () |
Called when rendering has finished. Default implementation does nothing. | |
void | setAction (QAction *action) |
Use this to associate a QAction to this maptool. | |
QAction * | action () |
Return associated action with map tool or NULL if no action is associated. | |
void | setButton (QAbstractButton *button) |
Use this to associate a button to this maptool. | |
QAbstractButton * | button () |
Return associated button with map tool or NULL if no button is associated. | |
virtual void | setCursor (QCursor cursor) |
Set a user defined cursor. | |
virtual bool | isTransient () |
Check whether this MapTool performs a zoom or pan operation. | |
virtual bool | isEditTool () |
Check whether this MapTool performs an edit operation. | |
QgsMapCanvas * | canvas () |
returns pointer to the tool's map canvas |
Protected Member Functions | |
void | deleteRubberBands () |
rubber bands for layer select mode | |
Protected Member Functions inherited from QgsMapTool | |
QgsMapTool (QgsMapCanvas *canvas) | |
constructor takes map canvas as a parameter | |
QgsPoint | toMapCoordinates (const QPoint &point) |
transformation from screen coordinates to map coordinates | |
QgsPoint | toLayerCoordinates (QgsMapLayer *layer, const QPoint &point) |
transformation from screen coordinates to layer's coordinates | |
QgsPoint | toLayerCoordinates (QgsMapLayer *layer, const QgsPoint &point) |
transformation from map coordinates to layer's coordinates | |
QgsPoint | toMapCoordinates (QgsMapLayer *layer, const QgsPoint &point) |
transformation from layer's coordinates to map coordinates (which is different in case reprojection is used) | |
QgsRectangle | toLayerCoordinates (QgsMapLayer *layer, const QgsRectangle &rect) |
trnasformation of the rect from map coordinates to layer's coordinates | |
QPoint | toCanvasCoordinates (const QgsPoint &point) |
transformation from map coordinates to screen coordinates |
Private Slots | |
void | handleMenuHover () |
menu for layer selection |
Private Member Functions | |
QList< IdentifyResult > | identify (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) |
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) |
Private Attributes | |
QMap< QgsMapLayer *, QList < IdentifyResult > > | mLayerIdResults |
layer id map for layer select mode | |
QList< QgsHighlight * > | mRubberBands |
rubber bands for layer select mode | |
QgsPoint | mLastPoint |
double | mLastMapUnitsPerPixel |
QgsRectangle | mLastExtent |
Additional Inherited Members | |
Protected Attributes inherited from QgsMapTool | |
QgsMapCanvas * | mCanvas |
pointer to map canvas | |
QCursor | mCursor |
cursor used in map tool | |
QAction * | mAction |
optionally map tool can have pointer to action which will be used to set that action as active | |
QAbstractButton * | mButton |
optionally map tool can have pointer to a button which will be used to set that action as active |
Map tool for identifying features in layers.
after selecting a point, performs the identification:
Definition at line 44 of file qgsmaptoolidentify.h.
Definition at line 50 of file qgsmaptoolidentify.h.
Definition at line 59 of file qgsmaptoolidentify.h.
QgsMapToolIdentify::QgsMapToolIdentify | ( | QgsMapCanvas * | canvas | ) |
constructor
Definition at line 48 of file qgsmaptoolidentify.cpp.
References identify_cursor, and QgsMapTool::mCursor.
|
virtual |
Definition at line 56 of file qgsmaptoolidentify.cpp.
|
virtual |
called when set as currently active map tool
Reimplemented from QgsMapTool.
Definition at line 230 of file qgsmaptoolidentify.cpp.
|
virtual |
Overridden mouse move event.
Reimplemented from QgsMapTool.
Definition at line 60 of file qgsmaptoolidentify.cpp.
|
virtual |
Overridden mouse press event.
Reimplemented from QgsMapTool.
Definition at line 65 of file qgsmaptoolidentify.cpp.
|
virtual |
Overridden mouse release event.
Reimplemented from QgsMapTool.
Definition at line 70 of file qgsmaptoolidentify.cpp.
|
signal |
Referenced by formatChanged().
|
privatevirtual |
Private helper.
Definition at line 619 of file qgsmaptoolidentify.cpp.
References QgsDistanceArea::convertMeasurement(), displayUnits(), QgsMapCanvas::mapUnits(), and QgsMapTool::mCanvas.
Referenced by featureDerivedAttributes().
|
virtual |
called when map tool is being deactivated
Reimplemented from QgsMapTool.
Definition at line 235 of file qgsmaptoolidentify.cpp.
|
protected |
rubber bands for layer select mode
Definition at line 677 of file qgsmaptoolidentify.cpp.
References mRubberBands.
Referenced by handleMenuHover(), and identify().
|
privatevirtual |
Transforms the measurements of derived attributes in the desired units.
Definition at line 631 of file qgsmaptoolidentify.cpp.
References QgsMapCanvas::mapUnits(), and QgsMapTool::mCanvas.
Referenced by convertMeasurement().
|
private |
Definition at line 352 of file qgsmaptoolidentify.cpp.
References QgsGeometry::asPoint(), QgsGeometry::asPolyline(), convertMeasurement(), QgsMapLayer::crs(), GEO_NONE, QgsFeature::geometry(), QgsMapCanvas::hasCrsTransformEnabled(), QgsProject::instance(), QgsMapRenderer::layerToMapCoordinates(), QGis::Line, QgsMapCanvas::mapRenderer(), QgsMapTool::mCanvas, QgsDistanceArea::measure(), QgsDistanceArea::measurePerimeter(), QGis::NoGeometry, QGis::Point, QGis::Polygon, QgsProject::readEntry(), QgsDistanceArea::setEllipsoid(), QgsDistanceArea::setEllipsoidalMode(), QgsDistanceArea::setSourceCrs(), QgsCoordinateReferenceSystem::srsid(), QgsDistanceArea::textUnit(), QgsPoint::toString(), tr, QgsGeometry::type(), QGis::WKBLineString, QGis::WKBLineString25D, QGis::WKBNoGeometry, QGis::WKBPoint, QGis::WKBPoint25D, QgsGeometry::wkbType(), QgsPoint::x(), and QgsPoint::y().
Referenced by identifyRasterLayer(), and identifyVectorLayer().
|
slot |
Definition at line 636 of file qgsmaptoolidentify.cpp.
References changedRasterResults(), identifyRasterLayer(), mLastExtent, mLastMapUnitsPerPixel, mLastPoint, and QgsDebugMsg.
|
privateslot |
menu for layer selection
Definition at line 646 of file qgsmaptoolidentify.cpp.
References deleteRubberBands(), QgsMapLayerRegistry::instance(), QgsMapLayerRegistry::mapLayer(), QgsMapTool::mCanvas, mLayerIdResults, mRubberBands, QgsHighlight::setColor(), and QgsHighlight::setWidth().
Referenced by identify().
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | int | x, |
int | y, | ||
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 75 of file qgsmaptoolidentify.cpp.
References AllLayers.
Referenced by identify().
QList< QgsMapToolIdentify::IdentifyResult > QgsMapToolIdentify::identify | ( | int | x, |
int | y, | ||
IdentifyMode | mode, | ||
LayerType | layerType = AllLayers |
||
) |
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
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). Default value is AllLayers. |
Definition at line 80 of file qgsmaptoolidentify.cpp.
References identify().
|
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
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). |
Definition at line 85 of file qgsmaptoolidentify.cpp.
References QgsMapTool::action(), ActiveLayer, QgsMapCanvas::currentLayer(), DefaultQgsSetting, deleteRubberBands(), QgsMapCanvas::extent(), QgsVectorLayer::geometryType(), QgsMapCanvas::getCoordinateTransform(), QgsApplication::getThemeIcon(), handleMenuHover(), QgsMapLayer::id(), identify(), identifyLayer(), identifyMessage(), identifyProgress(), QgsMapLayerRegistry::instance(), QgsProject::instance(), QgsMapCanvas::isDrawing(), QgsMapCanvas::layer(), QgsMapCanvas::layerCount(), LayerSelection, QGis::Line, QgsMapLayerRegistry::mapLayer(), QgsMapCanvas::mapUnitsPerPixel(), QgsMapTool::mCanvas, mLastExtent, mLastMapUnitsPerPixel, mLastPoint, mLayerIdResults, QgsMapLayer::name(), QGis::Point, QGis::Polygon, RasterLayer, QgsProject::readListEntry(), QgsMapToPixel::toMapCoordinates(), TopDownAll, TopDownStopAtFirst, and tr.
|
private |
call the right method depending on layer type
Definition at line 240 of file qgsmaptoolidentify.cpp.
References AllLayers, identifyRasterLayer(), identifyVectorLayer(), QgsMapLayer::RasterLayer, RasterLayer, QgsMapLayer::type(), QgsMapLayer::VectorLayer, and VectorLayer.
Referenced by identify().
|
signal |
Referenced by identify().
|
signal |
Referenced by identify().
|
private |
Definition at line 422 of file qgsmaptoolidentify.cpp.
References QgsRasterInterface::capabilities(), QgsRectangle::contains(), QgsDataProvider::crs(), QgsMapLayer::customProperty(), QgsRasterLayer::dataProvider(), QgsMapRenderer::destinationCrs(), QgsRasterIdentifyResult::error(), QgsMapLayer::extent(), featureDerivedAttributes(), QgsFeatureStore::features(), QgsFeatureStore::fields(), QgsRasterInterface::generateBandName(), QgsMapCanvas::hasCrsTransformEnabled(), QgsRectangle::height(), QgsRasterInterface::Identify, QgsRasterDataProvider::identify(), QgsRasterInterface::IdentifyFeature, QgsRaster::IdentifyFormatFeature, QgsRasterDataProvider::identifyFormatFromName(), QgsRaster::IdentifyFormatHtml, QgsRaster::IdentifyFormatText, QgsRasterDataProvider::identifyFormatToCapability(), QgsRaster::IdentifyFormatValue, QgsRasterInterface::IdentifyHtml, QgsRasterInterface::IdentifyText, QgsRasterInterface::IdentifyValue, QgsRasterIdentifyResult::isValid(), QgsMapCanvas::mapRenderer(), QgsMapTool::mCanvas, QgsError::message(), QgsRasterIdentifyResult::mParams, QgsMapLayer::name(), QgsFeatureStore::params(), QgsRasterBlock::printValue(), QgsDebugMsg, QgsRasterIdentifyResult::results(), QgsRectangle::setXMaximum(), QgsRectangle::setXMinimum(), QgsRectangle::setYMaximum(), QgsRectangle::setYMinimum(), QgsRasterLayer::subLayers(), QgsErrorMessage::Text, QgsMapTool::toLayerCoordinates(), QgsPoint::toString(), tr, QgsException::what(), QgsRectangle::width(), QgsPoint::x(), and QgsPoint::y().
Referenced by formatChanged(), and identifyLayer().
|
private |
Definition at line 256 of file qgsmaptoolidentify.cpp.
References QgsFeatureRendererV2::capabilities(), QGis::DEFAULT_IDENTIFY_RADIUS, QgsFeatureRequest::ExactIntersect, QgsMapCanvas::extent(), featureDerivedAttributes(), FID_TO_STRING, QgsFeatureRendererV2::Filter, QgsVectorLayer::getFeatures(), QgsMapLayer::hasScaleBasedVisibility(), QgsMapCanvas::mapRenderer(), QgsMapLayer::maximumScale(), QgsMapTool::mCanvas, QgsMapLayer::minimumScale(), QgsFeatureIterator::nextFeature(), QgsDebugMsg, QgsMapRenderer::rendererContext(), QgsVectorLayer::rendererV2(), QgsMapRenderer::scale(), QgsFeatureRendererV2::ScaleDependent, QgsRectangle::setXMaximum(), QgsRectangle::setXMinimum(), QgsRectangle::setYMaximum(), QgsRectangle::setYMinimum(), QgsFeatureRendererV2::startRender(), QgsFeatureRendererV2::stopRender(), QgsMapTool::toLayerCoordinates(), QgsPoint::toString(), tr, QgsException::what(), QgsRectangle::width(), QgsFeatureRendererV2::willRenderFeature(), QgsPoint::x(), and QgsPoint::y().
Referenced by identifyLayer().
|
private |
Definition at line 173 of file qgsmaptoolidentify.h.
Referenced by formatChanged(), and identify().
|
private |
Definition at line 171 of file qgsmaptoolidentify.h.
Referenced by formatChanged(), and identify().
|
private |
Definition at line 169 of file qgsmaptoolidentify.h.
Referenced by formatChanged(), and identify().
|
private |
layer id map for layer select mode
Definition at line 164 of file qgsmaptoolidentify.h.
Referenced by handleMenuHover(), and identify().
|
private |
rubber bands for layer select mode
Definition at line 166 of file qgsmaptoolidentify.h.
Referenced by deleteRubberBands(), and handleMenuHover().