|
QGIS API Documentation
master-6227475
|
Map tool for identifying features in layers. More...
#include <qgsmaptoolidentify.h>
Inheritance diagram for QgsMapToolIdentify:
Collaboration diagram for QgsMapToolIdentify: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< 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. | |
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< 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) |
Private Attributes | |
| QgsRectangle | mLastExtent |
| double | mLastMapUnitsPerPixel |
| QgsPoint | mLastPoint |
Map tool for identifying features in layers.
after selecting a point, performs the identification:
Definition at line 43 of file qgsmaptoolidentify.h.
Definition at line 49 of file qgsmaptoolidentify.h.
Definition at line 57 of file qgsmaptoolidentify.h.
| QgsMapToolIdentify::QgsMapToolIdentify | ( | QgsMapCanvas * | canvas | ) |
constructor
Definition at line 45 of file qgsmaptoolidentify.cpp.
References identify_cursor, and QgsMapTool::mCursor.
| QgsMapToolIdentify::~QgsMapToolIdentify | ( | ) | [virtual] |
Definition at line 53 of file qgsmaptoolidentify.cpp.
| 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.
| void QgsMapToolIdentify::changedRasterResults | ( | QList< IdentifyResult > & | ) | [signal] |
Referenced by formatChanged().
| void QgsMapToolIdentify::convertMeasurement | ( | QgsDistanceArea & | calc, |
| double & | measure, | ||
| QGis::UnitType & | u, | ||
| bool | isArea | ||
| ) | [private, virtual] |
Private helper.
Definition at line 523 of file qgsmaptoolidentify.cpp.
References QgsDistanceArea::convertMeasurement(), displayUnits(), QgsMapCanvas::mapUnits(), and QgsMapTool::mCanvas.
Referenced by featureDerivedAttributes().
| void QgsMapToolIdentify::deactivate | ( | ) | [virtual] |
called when map tool is being deactivated
Reimplemented from QgsMapTool.
Definition at line 164 of file qgsmaptoolidentify.cpp.
| QGis::UnitType QgsMapToolIdentify::displayUnits | ( | ) | [private, virtual] |
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().
| QMap< QString, QString > QgsMapToolIdentify::featureDerivedAttributes | ( | QgsFeature * | feature, |
| QgsMapLayer * | layer | ||
| ) | [private] |
Definition at line 279 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().
| void QgsMapToolIdentify::formatChanged | ( | QgsRasterLayer * | layer | ) | [slot] |
Definition at line 540 of file qgsmaptoolidentify.cpp.
References changedRasterResults(), identifyRasterLayer(), mLastExtent, mLastMapUnitsPerPixel, mLastPoint, and QgsDebugMsg.
| 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 72 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 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
| 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 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] |
Definition at line 349 of file qgsmaptoolidentify.cpp.
References QgsRasterInterface::capabilities(), QgsRectangle::contains(), QgsDataProvider::crs(), QgsMapLayer::customProperty(), QgsRasterLayer::dataProvider(), QgsMapRenderer::destinationCrs(), 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, QgsMapCanvas::mapRenderer(), QgsMapTool::mCanvas, QgsMapToolIdentify::IdentifyResult::mParams, QgsMapLayer::name(), QgsFeatureStore::params(), QgsRasterBlock::printValue(), QgsDebugMsg, QgsRasterIdentifyResult::results(), QgsRasterLayer::subLayers(), QgsMapTool::toLayerCoordinates(), QgsPoint::toString(), tr, QgsException::what(), QgsRectangle::width(), QgsPoint::x(), and QgsPoint::y().
Referenced by formatChanged(), and identifyLayer().
| bool QgsMapToolIdentify::identifyVectorLayer | ( | QList< IdentifyResult > * | results, |
| QgsVectorLayer * | layer, | ||
| QgsPoint | point | ||
| ) | [private] |
Definition at line 185 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().
QgsRectangle QgsMapToolIdentify::mLastExtent [private] |
Definition at line 161 of file qgsmaptoolidentify.h.
Referenced by formatChanged(), and identify().
double QgsMapToolIdentify::mLastMapUnitsPerPixel [private] |
Definition at line 159 of file qgsmaptoolidentify.h.
Referenced by formatChanged(), and identify().
QgsPoint QgsMapToolIdentify::mLastPoint [private] |
Definition at line 157 of file qgsmaptoolidentify.h.
Referenced by formatChanged(), and identify().