48 #include <QMouseEvent> 58 , mLastMapUnitsPerPixel( -1.0 )
59 , mCoordinatePrecision( 6 )
91 return identify( x, y, mode, QList<QgsMapLayer *>(), layerType );
101 return identify( geometry, mode, QList<QgsMapLayer *>(), layerType );
106 QList<IdentifyResult> results;
108 mLastGeometry = geometry;
123 int x = canvasPt.x(), y = canvasPt.y();
125 QPoint globalPos =
mCanvas->mapToGlobal( QPoint( x + 5, y + 5 ) );
128 else if ( mode ==
ActiveLayer && layerList.isEmpty() )
134 emit
identifyMessage( tr(
"No active layer. To identify features, you must choose an active layer." ) );
138 QApplication::setOverrideCursor( Qt::WaitCursor );
140 identifyLayer( &results, layer, mLastGeometry, mLastExtent, mLastMapUnitsPerPixel, layerType );
144 QApplication::setOverrideCursor( Qt::WaitCursor );
147 if ( layerList.isEmpty() )
150 layerCount = layerList.count();
153 for (
int i = 0; i < layerCount; i++ )
157 if ( layerList.isEmpty() )
160 layer = layerList.value( i );
168 if (
identifyLayer( &results, layer, mLastGeometry, mLastExtent, mLastMapUnitsPerPixel, layerType ) )
179 QApplication::restoreOverrideCursor();
186 mOverrideCanvasSearchRadius = searchRadiusMapUnits;
191 mOverrideCanvasSearchRadius = -1;
213 return identifyRasterLayer( results, qobject_cast<QgsRasterLayer *>( layer ), geometry, viewExtent, mapUnitsPerPixel );
221 return identifyMeshLayer( results, qobject_cast<QgsMeshLayer *>( layer ), geometry );
249 if ( ! scalarDatasetIndex.
isValid() && ! vectorDatasetIndex.
isValid() )
252 QMap< QString, QString > scalarAttributes, vectorAttributes;
255 if ( scalarDatasetIndex.
isValid() )
260 const double scalar = scalarValue.
scalar();
261 if ( std::isnan( scalar ) )
262 scalarAttributes.insert( tr(
"Scalar Value" ), tr(
"no data" ) );
264 scalarAttributes.insert( tr(
"Scalar Value" ), QString::number( scalar ) );
268 if ( vectorDatasetIndex.
isValid() )
273 const double vectorX = vectorValue.
x();
274 const double vectorY = vectorValue.
y();
276 if ( std::isnan( vectorX ) || std::isnan( vectorY ) )
277 vectorAttributes.insert( tr(
"Vector Value" ), tr(
"no data" ) );
280 vectorAttributes.insert( tr(
"Vector Magnitude" ), QString::number( vectorValue.
scalar() ) );
281 vectorAttributes.insert( tr(
"Vector x-component" ), QString::number( vectorY ) );
282 vectorAttributes.insert( tr(
"Vector y-component" ), QString::number( vectorX ) );
287 if ( scalarGroup == vectorGroup )
289 const IdentifyResult result( qobject_cast<QgsMapLayer *>( layer ),
293 results->append( result );
297 if ( !scalarGroup.isEmpty() )
299 const IdentifyResult result( qobject_cast<QgsMapLayer *>( layer ),
303 results->append( result );
305 if ( !vectorGroup.isEmpty() )
307 const IdentifyResult result( qobject_cast<QgsMapLayer *>( layer ),
311 results->append( result );
319 QMap< QString, QString > derivedAttributes;
320 derivedAttributes.insert( tr(
"(clicked coordinate X)" ), formatXCoordinate( point ) );
321 derivedAttributes.insert( tr(
"(clicked coordinate Y)" ), formatYCoordinate( point ) );
323 derivedAttributes.insert( tr(
"(clicked coordinate Z)" ), QString::number( point.
z(),
'f' ) );
324 return derivedAttributes;
334 QgsDebugMsg( QStringLiteral(
"Out of scale limits" ) );
338 QApplication::setOverrideCursor( Qt::WaitCursor );
340 QMap< QString, QString > commonDerivedAttributes;
343 bool isPointOrRectangle;
348 isPointOrRectangle =
true;
349 point = selectionGeom.
asPoint();
359 int featureCount = 0;
362 std::unique_ptr<QgsGeometryEngine> selectionGeomPrepared;
372 double sr = mOverrideCanvasSearchRadius < 0 ?
searchRadiusMU(
mCanvas ) : mOverrideCanvasSearchRadius;
379 if ( !isPointOrRectangle )
394 if ( !selectionGeomPrepared || selectionGeomPrepared->intersects( f.
geometry().
constGet() ) )
402 QgsDebugMsg( QStringLiteral(
"Caught CRS exception %1" ).arg( cse.
what() ) );
409 std::unique_ptr< QgsFeatureRenderer > renderer( layer->
renderer() ? layer->
renderer()->
clone() : nullptr );
413 renderer->startRender( context, layer->
fields() );
417 for (
const QgsFeature &feature : qgis::as_const( featureList ) )
419 QMap< QString, QString > derivedAttributes = commonDerivedAttributes;
424 if ( filter && !renderer->willRenderFeature( feature, context ) )
430 derivedAttributes.unite( featureDerivedAttributes( feature, layer,
toLayerCoordinates( layer, point ) ) );
432 derivedAttributes.insert( tr(
"Feature ID" ), fid < 0 ? tr(
"new feature" ) :
FID_TO_STRING( fid ) );
434 results->append(
IdentifyResult( qobject_cast<QgsMapLayer *>( layer ), feature, derivedAttributes ) );
439 renderer->stopRender( context );
442 QgsDebugMsg(
"Feature count on identify: " + QString::number( featureCount ) );
444 QApplication::restoreOverrideCursor();
445 return featureCount > 0;
450 QString str = QLocale().toString( vId.
vertex + 1 );
451 derivedAttributes.insert( tr(
"Closest vertex number" ), str );
456 derivedAttributes.insert( tr(
"Closest vertex X" ), formatXCoordinate( closestPointMapCoords ) );
457 derivedAttributes.insert( tr(
"Closest vertex Y" ), formatYCoordinate( closestPointMapCoords ) );
459 if ( closestPoint.
is3D() )
461 str = QLocale().
toString( closestPoint.
z(),
'g', 10 );
462 derivedAttributes.insert( tr(
"Closest vertex Z" ), str );
466 str = QLocale().toString( closestPoint.
m(),
'g', 10 );
467 derivedAttributes.insert( tr(
"Closest vertex M" ), str );
472 double radius, centerX, centerY;
478 geometry.
vertexAt( vIdAfter ), radius, centerX, centerY );
479 derivedAttributes.insert( QStringLiteral(
"Closest vertex radius" ), QLocale().toString( radius ) );
483 void QgsMapToolIdentify::closestPointAttributes(
const QgsAbstractGeometry &geometry,
const QgsPointXY &layerPoint, QMap<QString, QString> &derivedAttributes )
487 derivedAttributes.insert( tr(
"Closest X" ), formatXCoordinate( closestPoint ) );
488 derivedAttributes.insert( tr(
"Closest Y" ), formatYCoordinate( closestPoint ) );
490 if ( closestPoint.
is3D() )
492 const QString str = QLocale().toString( closestPoint.
z(),
'g', 10 );
493 derivedAttributes.insert( tr(
"Interpolated Z" ), str );
497 const QString str = QLocale().toString( closestPoint.
m(),
'g', 10 );
498 derivedAttributes.insert( tr(
"Interpolated M" ), str );
502 QString QgsMapToolIdentify::formatCoordinate(
const QgsPointXY &canvasPoint )
const 505 mCoordinatePrecision );
508 QString QgsMapToolIdentify::formatXCoordinate(
const QgsPointXY &canvasPoint )
const 510 QString coordinate = formatCoordinate( canvasPoint );
511 return coordinate.split(
',' ).at( 0 );
514 QString QgsMapToolIdentify::formatYCoordinate(
const QgsPointXY &canvasPoint )
const 516 QString coordinate = formatCoordinate( canvasPoint );
517 return coordinate.split(
',' ).at( 1 );
524 QMap< QString, QString > derivedAttributes;
547 QString str = QLocale().toString( static_cast<const QgsGeometryCollection *>( feature.
geometry().
constGet() )->numGeometries() );
548 derivedAttributes.insert( tr(
"Parts" ), str );
549 str = QLocale().toString( vId.
part + 1 );
550 derivedAttributes.insert( tr(
"Part number" ), str );
554 ? displayDistanceUnits() : layer->
crs().
mapUnits();
565 str = formatDistance( dist );
566 derivedAttributes.insert( tr(
"Length (Ellipsoidal — %1)" ).arg( ellipsoid ), str );
571 derivedAttributes.insert( tr(
"Length (Cartesian)" ), str );
573 derivedAttributes.insert( tr(
"Length (Cartesian — 2D)" ), str );
576 str = formatDistance( qgsgeometry_cast< const QgsLineString * >( feature.
geometry().
constGet() )->length3D()
578 derivedAttributes.insert( tr(
"Length (Cartesian — 3D)" ), str );
585 derivedAttributes.insert( tr(
"Vertices" ), str );
587 closestVertexAttributes( *geom, vId, layer, derivedAttributes );
588 closestPointAttributes( *geom, layerPoint, derivedAttributes );
590 if (
const QgsCurve *curve = qgsgeometry_cast< const QgsCurve * >( geom ) )
594 str = formatXCoordinate( pnt );
595 derivedAttributes.insert( tr(
"firstX",
"attributes get sorted; translation for lastX should be lexically larger than this one" ), str );
596 str = formatYCoordinate( pnt );
597 derivedAttributes.insert( tr(
"firstY" ), str );
599 str = formatXCoordinate( pnt );
600 derivedAttributes.insert( tr(
"lastX",
"attributes get sorted; translation for firstX should be lexically smaller than this one" ), str );
601 str = formatYCoordinate( pnt );
602 derivedAttributes.insert( tr(
"lastY" ), str );
613 str = formatArea( area );
614 derivedAttributes.insert( tr(
"Area (Ellipsoidal — %1)" ).arg( ellipsoid ), str );
618 derivedAttributes.insert( tr(
"Area (Cartesian)" ), str );
624 str = formatDistance( perimeter );
625 derivedAttributes.insert( tr(
"Perimeter (Ellipsoidal — %1)" ).arg( ellipsoid ), str );
629 derivedAttributes.insert( tr(
"Perimeter (Cartesian)" ), str );
632 derivedAttributes.insert( tr(
"Vertices" ), str );
635 closestVertexAttributes( *feature.
geometry().
constGet(), vId, layer, derivedAttributes );
636 closestPointAttributes( *feature.
geometry().
constGet(), layerPoint, derivedAttributes );
644 QString str = formatXCoordinate( pnt );
645 derivedAttributes.insert( tr(
"X" ), str );
646 str = formatYCoordinate( pnt );
647 derivedAttributes.insert( tr(
"Y" ), str );
651 str = QLocale().toString( static_cast<const QgsPoint *>( feature.
geometry().
constGet() )->z(),
'g', 10 );
652 derivedAttributes.insert( tr(
"Z" ), str );
656 str = QLocale().toString( static_cast<const QgsPoint *>( feature.
geometry().
constGet() )->m(),
'g', 10 );
657 derivedAttributes.insert( tr(
"M" ), str );
667 closestVertexAttributes( *geom, vId, layer, derivedAttributes );
672 return derivedAttributes;
703 QgsDebugMsg( QStringLiteral(
"coordinate not reprojectable: %1" ).arg( cse.
what() ) );
706 QgsDebugMsg( QStringLiteral(
"point = %1 %2" ).arg( point.
x() ).arg( point.
y() ) );
711 QMap< QString, QString > attributes, derivedAttributes;
736 r.
setXMinimum( pointInCanvasCrs.
x() - mapUnitsPerPixel / 2. );
737 r.
setXMaximum( pointInCanvasCrs.
x() + mapUnitsPerPixel / 2. );
738 r.
setYMinimum( pointInCanvasCrs.
y() - mapUnitsPerPixel / 2. );
739 r.
setYMaximum( pointInCanvasCrs.
y() + mapUnitsPerPixel / 2. );
743 identifyResult = dprovider->
identify( point, format, r, 1, 1 );
759 int width =
static_cast< int >( std::round( viewExtent.
width() / mapUnitsPerPixel ) );
760 int height =
static_cast< int >( std::round( viewExtent.
height() / mapUnitsPerPixel ) );
762 QgsDebugMsg( QStringLiteral(
"viewExtent.width = %1 viewExtent.height = %2" ).arg( viewExtent.
width() ).arg( viewExtent.
height() ) );
763 QgsDebugMsg( QStringLiteral(
"width = %1 height = %2" ).arg( width ).arg( height ) );
764 QgsDebugMsg( QStringLiteral(
"xRes = %1 yRes = %2 mapUnitsPerPixel = %3" ).arg( viewExtent.
width() / width ).arg( viewExtent.
height() / height ).arg( mapUnitsPerPixel ) );
766 identifyResult = dprovider->
identify( point, format, viewExtent, width, height );
771 if ( identifyResult.
isValid() )
773 QMap<int, QVariant> values = identifyResult.
results();
777 for (
auto it = values.constBegin(); it != values.constEnd(); ++it )
780 if ( it.value().isNull() )
782 valueString = tr(
"no data" );
786 QVariant value( it.value() );
790 if ( static_cast<QMetaType::Type>( value.type() ) == QMetaType::Float )
801 QString label = layer->
name();
802 results->append(
IdentifyResult( qobject_cast<QgsMapLayer *>( layer ), label, attributes, derivedAttributes ) );
806 for (
auto it = values.constBegin(); it != values.constEnd(); ++it )
808 QVariant value = it.value();
809 if ( value.type() == QVariant::Bool && !value.toBool() )
815 if ( value.type() == QVariant::String )
819 QString label = layer->
subLayers().value( it.key() );
821 attributes.insert( tr(
"Error" ), value.toString() );
823 results->append(
IdentifyResult( qobject_cast<QgsMapLayer *>( layer ), label, attributes, derivedAttributes ) );
833 for (
const QgsFeature &feature : storeFeatures )
839 QString sublayer = featureStore.params().value( QStringLiteral(
"sublayer" ) ).toString();
840 QString featureType = featureStore.params().value( QStringLiteral(
"featureType" ) ).toString();
842 featureType.remove( QStringLiteral(
"_feature" ) );
844 if ( sublayer.compare( layer->
name(), Qt::CaseInsensitive ) != 0 )
848 if ( featureType.compare( sublayer, Qt::CaseInsensitive ) != 0 || labels.isEmpty() )
850 labels << featureType;
853 QMap< QString, QString > derAttributes = derivedAttributes;
854 derAttributes.unite( featureDerivedAttributes( feature, layer ) );
856 IdentifyResult identifyResult( qobject_cast<QgsMapLayer *>( layer ), labels.join( QStringLiteral(
" / " ) ), featureStore.fields(), feature, derAttributes );
858 identifyResult.mParams.insert( QStringLiteral(
"getFeatureInfoUrl" ), featureStore.params().value( QStringLiteral(
"getFeatureInfoUrl" ) ) );
859 results->append( identifyResult );
866 QgsDebugMsg( QStringLiteral(
"%1 HTML or text values" ).arg( values.size() ) );
867 for (
auto it = values.constBegin(); it != values.constEnd(); ++it )
869 QString value = it.value().toString();
871 attributes.insert( QString(), value );
873 QString label = layer->
subLayers().value( it.key() );
874 results->append(
IdentifyResult( qobject_cast<QgsMapLayer *>( layer ), label, attributes, derivedAttributes ) );
882 attributes.insert( tr(
"Error" ), value );
883 QString label = tr(
"Identify error" );
884 results->append(
IdentifyResult( qobject_cast<QgsMapLayer *>( layer ), label, attributes, derivedAttributes ) );
900 QString QgsMapToolIdentify::formatDistance(
double distance )
const 902 return formatDistance( distance, displayDistanceUnits() );
905 QString QgsMapToolIdentify::formatArea(
double area )
const 907 return formatArea( area, displayAreaUnits() );
913 bool baseUnit = settings.
value( QStringLiteral(
"qgis/measure/keepbaseunit" ),
true ).toBool();
921 bool baseUnit = settings.
value( QStringLiteral(
"qgis/measure/keepbaseunit" ),
true ).toBool();
928 QList<IdentifyResult> results;
929 if (
identifyRasterLayer( &results, layer, mLastGeometry, mLastExtent, mLastMapUnitsPerPixel ) )
bool isMeasure() const
Returns true if the geometry contains m values.
Wrapper for iterator of features from vector data provider or vector layer.
A container for features with the same fields and crs.
bool contains(const QgsRectangle &rect) const
Returns true when rectangle contains other rectangle.
A rectangle specified with double values.
Base class for all map layer types.
QStringList subLayers() const override
Returns the sublayers of this layer.
static QString printValue(double value)
Print double value with all necessary significant digits.
QgsMapLayerType type() const
Returns the type of the layer.
QgsCoordinateTransformContext transformContext() const
Returns the coordinate transform context, which stores various information regarding which datum tran...
OperationResult transform(const QgsCoordinateTransform &ct, QgsCoordinateTransform::TransformDirection direction=QgsCoordinateTransform::ForwardTransform, bool transformZ=false) SIP_THROW(QgsCsException)
Transforms this geometry as described by the coordinate transform ct.
void setXMaximum(double x)
Set the maximum x value.
Use exact geometry intersection (slower) instead of bounding boxes.
This class is a composition of two QSettings instances:
static bool isMultiType(Type type)
Returns true if the WKB type is a multi type.
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context.
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
Features may be filtered, i.e. some features may not be rendered (categorized, rule based ...
QList< QgsFeatureStore > QgsFeatureStoreList
QList< QgsFeature > QgsFeatureList
QgsWkbTypes::Type wkbType() const
Returns type of the geometry as a WKB type (point / linestring / polygon etc.)
A class to represent a 2D point.
int layerCount() const
Returns number of layers on the map.
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.
static Capability identifyFormatToCapability(QgsRaster::IdentifyFormat format)
bool isInScaleRange(double scale) const
Tests whether the layer should be visible at the specified scale.
QgsMapLayer::LayerFlags flags() const
Returns the flags for this layer.
A geometry is the spatial representation of a feature.
QString toString(int precision=-1) const
Returns a string representation of the point (x, y) with a preset precision.
double convertLengthMeasurement(double length, QgsUnitTypes::DistanceUnit toUnits) const
Takes a length measurement calculated by this QgsDistanceArea object and converts it to a different d...
QgsUnitTypes::DistanceUnit mapUnits
bool setEllipsoid(const QString &ellipsoid)
Sets the ellipsoid by its acronym.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
static QgsPoint closestVertex(const QgsAbstractGeometry &geom, const QgsPoint &pt, QgsVertexId &id)
Returns the closest vertex to a geometry for a specified point.
double convertAreaMeasurement(double area, QgsUnitTypes::AreaUnit toUnits) const
Takes an area measurement calculated by this QgsDistanceArea object and converts it to a different ar...
bool hasGeometry() const
Returns true if the feature has an associated geometry.
int group() const
Returns a group index.
bool isSpatial() const FINAL
Returns true if this is a geometry layer and false in case of NoGeometry (table only) or UnknownGeome...
static bool hasZ(Type type)
Tests whether a WKB type contains the z-dimension.
Map canvas is a class for displaying all GIS data types on a canvas.
const QString GEO_NONE
Constant that holds the string representation for "No ellips/No CRS".
QgsCoordinateReferenceSystem destinationCrs() const
returns CRS of destination coordinate reference system
virtual QgsRectangle extent() const
Returns the extent of the layer.
double y() const
Returns y value.
Raster identify results container.
static QgsGeometry fromRect(const QgsRectangle &rect)
Creates a new geometry from a QgsRectangle.
QgsRasterDataProvider * dataProvider() override
Returns the source data provider.
virtual double length() const
Returns the planar, 2-dimensional length of the geometry.
QgsMeshDatasetIndex activeVectorDataset() const
Returns active vector dataset.
bool isValid() const
Returns true if valid.
Type
The WKB type describes the number of dimensions a geometry has.
Represents all mesh renderer settings.
double mapUnitsPerPixel() const
Returns the mapUnitsPerPixel (map units per pixel) for the canvas.
QgsFields fields() const FINAL
Returns the list of fields of this layer.
Utility class for identifying a unique vertex within a geometry.
#define QgsDebugMsgLevel(str, level)
static QgsRaster::IdentifyFormat identifyFormatFromName(const QString &formatName)
virtual int capabilities() const
Returns a bitmask containing the supported capabilities.
virtual QgsCoordinateReferenceSystem crs() const =0
Returns the coordinate system for the data source.
double scale() const
Returns the calculated map scale.
QgsMeshRendererSettings rendererSettings() const
Returns renderer settings.
double width() const
Returns the width of the rectangle.
void setYMinimum(double y)
Set the minimum y value.
QgsRectangle extent() const
Returns the current zoom extent of the map canvas.
This class wraps a request for features to a vector layer (or directly its vector data provider)...
QgsFeatureRenderer * renderer()
Returns renderer.
Abstract base class for curved geometry type.
QgsMeshDataProvider * dataProvider() override
Returns the layer's data provider, it may be nullptr.
double measureLength(const QgsGeometry &geometry) const
Measures the length of a geometry.
Abstract base class for all geometries.
double scalar() const
Returns magnitude of vector for vector data or scalar value for scalar data.
Point geometry type, with support for z-dimension and m-values.
QgsMeshDatasetValue datasetValue(const QgsMeshDatasetIndex &index, const QgsPointXY &point) const
Interpolates the value on the given point from given dataset.
double measurePerimeter(const QgsGeometry &geometry) const
Measures the perimeter of a polygon geometry.
QMap< int, QVariant > results() const
Returns the identify results.
static QgsGeometryEngine * createGeometryEngine(const QgsAbstractGeometry *geometry)
Creates and returns a new geometry engine.
const QgsAbstractGeometry * constGet() const
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
QgsMapLayer * currentLayer()
returns current layer (set by legend widget)
QgsExpressionContext & expressionContext()
Gets the expression context.
DistanceUnit
Units of distance.
static Q_INVOKABLE DistanceUnitType unitType(QgsUnitTypes::DistanceUnit unit)
Returns the type for a distance unit.
QgsCoordinateTransformContext transformContext
const QgsMapSettings & mapSettings() const
Gets access to properties used for map rendering.
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
A general purpose distance and area calculator, capable of performing ellipsoid based calculations...
QgsUnitTypes::DistanceUnit mapUnits() const
Convenience function for returning the current canvas map units.
Contains information about the context of a rendering operation.
QString message(QgsErrorMessage::Format format=QgsErrorMessage::Html) const
Full error messages description.
QgsPointXY asPoint() const
Returns the contents of the geometry as a 2-dimensional point.
#define FID_TO_STRING(fid)
QgsError error() const
Returns the last error.
void setYMaximum(double y)
Set the maximum y value.
QgsPointXY layerToMapCoordinates(const QgsMapLayer *layer, QgsPointXY point) const
transform point coordinates from layer's CRS to output CRS
static QgsRenderContext fromMapSettings(const QgsMapSettings &mapSettings)
create initialized QgsRenderContext instance from given QgsMapSettings
static QgsProject * instance()
Returns the QgsProject singleton instance.
virtual double perimeter() const
Returns the planar, 2-dimensional perimeter of the geometry.
QgsRectangle boundingBox() const
Returns the bounding box of the geometry.
QgsMeshDatasetIndex is index that identifies the dataset group (e.g.
virtual QgsRasterIdentifyResult identify(const QgsPointXY &point, QgsRaster::IdentifyFormat format, const QgsRectangle &boundingBox=QgsRectangle(), int width=0, int height=0, int dpi=96)
Identify raster value(s) found on the point position.
static void circleCenterRadius(const QgsPoint &pt1, const QgsPoint &pt2, const QgsPoint &pt3, double &radius, double ¢erX, double ¢erY)
Returns radius and center of the circle through pt1, pt2, pt3.
static QString formatArea(double area, int decimals, QgsUnitTypes::AreaUnit unit, bool keepBaseUnit=false)
Returns an area formatted as a friendly string.
bool isValid() const
Returns whether index is valid, ie at least groups is set.
T enumValue(const QString &key, const T &defaultValue, const Section section=NoSection)
Returns the setting value for a setting based on an enum.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const FINAL
Queries the layer for features specified in request.
static bool hasM(Type type)
Tests whether a WKB type contains m values.
static QCursor getThemeCursor(Cursor cursor)
Helper to get a theme cursor.
void setSourceCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets source spatial reference system crs.
QgsWkbTypes::GeometryType type
QgsMeshDatasetValue represents single dataset value.
Custom exception class for Coordinate Reference System related exceptions.
QVariant customProperty(const QString &value, const QVariant &defaultValue=QVariant()) const
Read a custom property from layer.
static QgsPoint closestPoint(const QgsAbstractGeometry &geometry, const QgsPoint &point)
Returns the nearest point on a segment of a geometry for the specified point.
double area() const
Returns the planar, 2-dimensional area of the geometry.
static QgsExpressionContextScope * layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer.
bool nextFeature(QgsFeature &f)
virtual QString generateBandName(int bandNumber) const
helper function to create zero padded band names
static Q_INVOKABLE double fromUnitToUnitFactor(QgsUnitTypes::DistanceUnit fromUnit, QgsUnitTypes::DistanceUnit toUnit)
Returns the conversion factor between the specified distance units.
virtual QgsPoint vertexAt(QgsVertexId id) const =0
Returns the point corresponding to a specified vertex id.
virtual int nCoordinates() const
Returns the number of nodes contained in the geometry.
Represents a vector layer which manages a vector based data sets.
static Type flatType(Type type)
Returns the flat type for a WKB type.
static Q_INVOKABLE QgsUnitTypes::AreaUnit distanceToAreaUnit(QgsUnitTypes::DistanceUnit distanceUnit)
Converts a distance unit to its corresponding area unit, e.g., meters to square meters.
If the layer is identifiable using the identify map tool and as a WMS layer.
bool is3D() const
Returns true if the geometry is 3D and contains a z-value.
double x() const
Returns x value.
QgsMapLayer * layer(int index)
Returns the map layer at position index in the layer stack.
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
double measureArea(const QgsGeometry &geometry) const
Measures the area of a geometry.
static QgsGeometry fromPointXY(const QgsPointXY &point)
Creates a new geometry from a QgsPointXY object.
void setXMinimum(double x)
Set the minimum x value.
QgsCoordinateReferenceSystem crs
double height() const
Returns the height of the rectangle.
Base class for raster data providers.
virtual QgsMeshDatasetGroupMetadata datasetGroupMetadata(int groupIndex) const =0
Returns dataset group metadata.
static QString formatDistance(double distance, int decimals, QgsUnitTypes::DistanceUnit unit, bool keepBaseUnit=false)
Returns an distance formatted as a friendly string.
QgsMeshDatasetIndex activeScalarDataset() const
Returns active scalar dataset.