QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
QgsRasterLayerElevationProperties Class Reference

Raster layer specific subclass of QgsMapLayerElevationProperties. More...

#include <qgsrasterlayerelevationproperties.h>

Inheritance diagram for QgsRasterLayerElevationProperties:

Public Member Functions

 QgsRasterLayerElevationProperties (QObject *parent)
 Constructor for QgsRasterLayerElevationProperties, with the specified parent object.
 ~QgsRasterLayerElevationProperties () override
int bandForElevationRange (QgsRasterLayer *layer, const QgsDoubleRange &range) const
 Returns the band corresponding to the specified range.
int bandNumber () const
 Returns the band number from which the elevation should be taken.
QgsDoubleRange calculateZRange (QgsMapLayer *layer) const override
 Attempts to calculate the overall elevation or z range for the specified layer, using the settings defined by this elevation properties object.
QgsRasterLayerElevationPropertiesclone () const override
 Creates a clone of the properties.
double elevationLimit () const
 Returns the elevation limit, which is used when profileSymbology() is Qgis::ProfileSurfaceSymbology::FillBelow or Qgis::ProfileSurfaceSymbology::FillAbove to limit the fill to a specific elevation range.
QgsDoubleRange elevationRangeForPixelValue (QgsRasterLayer *layer, int band, double pixelValue) const
 Returns the elevation range corresponding to a raw pixel value from the specified band.
QgsDoubleRange fixedRange () const
 Returns the fixed elevation range for the raster.
QMap< int, QgsDoubleRangefixedRangePerBand () const
 Returns the fixed elevation range for each band.
QgsMapLayerElevationProperties::Flags flags () const override
 Returns flags associated to the elevation properties.
bool hasElevation () const override
 Returns true if the layer has an elevation or z component.
QString htmlSummary () const override
 Returns a HTML formatted summary of the properties.
bool isEnabled () const
 Returns true if the elevation properties are enabled, i.e.
bool isVisibleInZRange (const QgsDoubleRange &range, QgsMapLayer *layer=nullptr) const override
 Returns true if the layer should be visible and rendered for the specified z range.
Qgis::RasterElevationMode mode () const
 Returns the elevation mode.
QgsFillSymbolprofileFillSymbol () const
 Returns the fill symbol used to render the raster profile in elevation profile plots.
QgsLineSymbolprofileLineSymbol () const
 Returns the line symbol used to render the raster profile in elevation profile plots.
Qgis::ProfileSurfaceSymbology profileSymbology () const
 Returns the symbology option used to render the raster profile in elevation profile plots.
bool readXml (const QDomElement &element, const QgsReadWriteContext &context) override
 Reads the elevation properties from a DOM element previously written by writeXml().
void setBandNumber (int band)
 Sets the band number from which the elevation should be taken.
void setElevationLimit (double limit)
 Sets the elevation limit, which is used when profileSymbology() is Qgis::ProfileSurfaceSymbology::FillBelow or Qgis::ProfileSurfaceSymbology::FillAbove to limit the fill to a specific elevation range.
void setEnabled (bool enabled)
 Sets whether the elevation properties are enabled, i.e.
void setFixedRange (const QgsDoubleRange &range)
 Sets the fixed elevation range for the raster.
void setFixedRangePerBand (const QMap< int, QgsDoubleRange > &ranges)
 Sets the fixed elevation range for each band.
void setMode (Qgis::RasterElevationMode mode)
 Sets the elevation mode.
void setProfileFillSymbol (QgsFillSymbol *symbol)
 Sets the fill symbol used to render the raster profile in elevation profile plots.
void setProfileLineSymbol (QgsLineSymbol *symbol)
 Sets the line symbol used to render the raster profile in elevation profile plots.
void setProfileSymbology (Qgis::ProfileSurfaceSymbology symbology)
 Sets the symbology option used to render the raster profile in elevation profile plots.
bool showByDefaultInElevationProfilePlots () const override
 Returns true if the layer should be visible by default in newly created elevation profile plots.
QList< double > significantZValues (QgsMapLayer *layer) const override
 Returns a list of significant elevation/z-values for the specified layer, using the settings defined by this elevation properties object.
QDomElement writeXml (QDomElement &element, QDomDocument &doc, const QgsReadWriteContext &context) override
 Writes the properties to a DOM element, to be used later with readXml().
Public Member Functions inherited from QgsMapLayerElevationProperties
 QgsMapLayerElevationProperties (QObject *parent)
 Constructor for QgsMapLayerElevationProperties, with the specified parent object.
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the object's property collection, used for data defined overrides.
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the object's property collection, used for data defined overrides.
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the object's property collection, used for data defined overrides.
virtual void setDefaultsFromLayer (QgsMapLayer *layer)
 Sets default properties based on sensible choices for the given map layer.
void setZOffset (double offset)
 Sets the z offset, which is a fixed offset amount which will be added to z values from the layer.
void setZScale (double scale)
 Sets the z scale, which is a scaling factor which will be applied to z values from the layer.
double zOffset () const
 Returns the z offset, which is a fixed offset amount which should be added to z values from the layer.
double zScale () const
 Returns the z scale, which is a scaling factor which should be applied to z values from the layer.

Static Public Member Functions

static bool layerLooksLikeDem (QgsRasterLayer *layer)
 Returns true if a raster layer looks like a DEM.
Static Public Member Functions inherited from QgsMapLayerElevationProperties
static QgsPropertiesDefinition propertyDefinitions ()
 Returns the definitions for data defined properties available for use in elevation properties.

Additional Inherited Members

Public Types inherited from QgsMapLayerElevationProperties
enum  Flag { FlagDontInvalidateCachedRendersWhenRangeChanges = 1 }
 Flags attached to the elevation property. More...
typedef QFlags< FlagFlags
enum class  Property : int { ZOffset , ExtrusionHeight , RasterPerBandLowerElevation , RasterPerBandUpperElevation }
 Data definable properties. More...
Signals inherited from QgsMapLayerElevationProperties
void changed ()
 Emitted when any of the elevation properties have changed.
void profileGenerationPropertyChanged ()
 Emitted when any of the elevation properties which relate solely to generation of elevation profiles have changed.
void profileRenderingPropertyChanged ()
 Emitted when any of the elevation properties which relate solely to presentation of elevation results have changed.
void zOffsetChanged ()
 Emitted when the z offset changes.
void zScaleChanged ()
 Emitted when the z scale changes.
Protected Member Functions inherited from QgsMapLayerElevationProperties
void copyCommonProperties (const QgsMapLayerElevationProperties *other)
 Copies common properties from another object.
void readCommonProperties (const QDomElement &element, const QgsReadWriteContext &context)
 Reads common class properties from a DOM element previously written by writeXml().
void writeCommonProperties (QDomElement &element, QDomDocument &doc, const QgsReadWriteContext &context)
 Writes common class properties to a DOM element, to be used later with readXml().
Protected Attributes inherited from QgsMapLayerElevationProperties
QgsPropertyCollection mDataDefinedProperties
 Property collection for data defined elevation settings.
double mZOffset = 0.0
 Z offset.
double mZScale = 1.0
 Z scale.
Static Protected Attributes inherited from QgsMapLayerElevationProperties
static QgsPropertiesDefinition sPropertyDefinitions
 Property definitions.

Detailed Description

Raster layer specific subclass of QgsMapLayerElevationProperties.

Since
QGIS 3.26

Definition at line 36 of file qgsrasterlayerelevationproperties.h.

Constructor & Destructor Documentation

◆ QgsRasterLayerElevationProperties()

QgsRasterLayerElevationProperties::QgsRasterLayerElevationProperties ( QObject * parent)

Constructor for QgsRasterLayerElevationProperties, with the specified parent object.

Definition at line 32 of file qgsrasterlayerelevationproperties.cpp.

◆ ~QgsRasterLayerElevationProperties()

QgsRasterLayerElevationProperties::~QgsRasterLayerElevationProperties ( )
overridedefault

Member Function Documentation

◆ bandForElevationRange()

int QgsRasterLayerElevationProperties::bandForElevationRange ( QgsRasterLayer * layer,
const QgsDoubleRange & range ) const

Returns the band corresponding to the specified range.

Note
This is only considered when mode() is Qgis::RasterElevationMode::FixedRangePerBand or Qgis::RasterElevationMode::DynamicRangePerBand. For other modes it will always return -1.
Since
QGIS 3.38

Definition at line 552 of file qgsrasterlayerelevationproperties.cpp.

◆ bandNumber()

int QgsRasterLayerElevationProperties::bandNumber ( ) const
inline

Returns the band number from which the elevation should be taken.

Note
This is only considered when mode() is Qgis::RasterElevationMode::RepresentsElevationSurface.
See also
setBandNumber()

Definition at line 97 of file qgsrasterlayerelevationproperties.h.

◆ calculateZRange()

QgsDoubleRange QgsRasterLayerElevationProperties::calculateZRange ( QgsMapLayer * layer) const
overridevirtual

Attempts to calculate the overall elevation or z range for the specified layer, using the settings defined by this elevation properties object.

May return an infinite range if the extent could not be calculated.

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 278 of file qgsrasterlayerelevationproperties.cpp.

◆ clone()

QgsRasterLayerElevationProperties * QgsRasterLayerElevationProperties::clone ( ) const
overridevirtual

Creates a clone of the properties.

Since
QGIS 3.26

Implements QgsMapLayerElevationProperties.

Definition at line 170 of file qgsrasterlayerelevationproperties.cpp.

◆ elevationLimit()

double QgsRasterLayerElevationProperties::elevationLimit ( ) const

Returns the elevation limit, which is used when profileSymbology() is Qgis::ProfileSurfaceSymbology::FillBelow or Qgis::ProfileSurfaceSymbology::FillAbove to limit the fill to a specific elevation range.

By default this is NaN, which indicates that there is no elevation limit.

See also
setElevationLimit()
Since
QGIS 3.32

Definition at line 666 of file qgsrasterlayerelevationproperties.cpp.

◆ elevationRangeForPixelValue()

QgsDoubleRange QgsRasterLayerElevationProperties::elevationRangeForPixelValue ( QgsRasterLayer * layer,
int band,
double pixelValue ) const

Returns the elevation range corresponding to a raw pixel value from the specified band.

Returns an infinite range if the pixel value does not correspond to an elevation value.

Since
QGIS 3.38

Definition at line 491 of file qgsrasterlayerelevationproperties.cpp.

◆ fixedRange()

QgsDoubleRange QgsRasterLayerElevationProperties::fixedRange ( ) const

Returns the fixed elevation range for the raster.

Note
This is only considered when mode() is Qgis::RasterElevationMode::FixedElevationRange.
When a fixed range is set any zOffset() and zScale() is ignored.
See also
setFixedRange()
Since
QGIS 3.38

Definition at line 785 of file qgsrasterlayerelevationproperties.cpp.

◆ fixedRangePerBand()

QMap< int, QgsDoubleRange > QgsRasterLayerElevationProperties::fixedRangePerBand ( ) const

Returns the fixed elevation range for each band.

Note
This is only considered when mode() is Qgis::RasterElevationMode::FixedRangePerBand.
When a fixed range is set any zOffset() and zScale() is ignored.
See also
setFixedRangePerBand()
Since
QGIS 3.38

Definition at line 771 of file qgsrasterlayerelevationproperties.cpp.

◆ flags()

QgsMapLayerElevationProperties::Flags QgsRasterLayerElevationProperties::flags ( ) const
overridevirtual

Returns flags associated to the elevation properties.

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 439 of file qgsrasterlayerelevationproperties.cpp.

◆ hasElevation()

bool QgsRasterLayerElevationProperties::hasElevation ( ) const
overridevirtual

Returns true if the layer has an elevation or z component.

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 42 of file qgsrasterlayerelevationproperties.cpp.

◆ htmlSummary()

QString QgsRasterLayerElevationProperties::htmlSummary ( ) const
overridevirtual

Returns a HTML formatted summary of the properties.

Since
QGIS 3.26

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 186 of file qgsrasterlayerelevationproperties.cpp.

◆ isEnabled()

bool QgsRasterLayerElevationProperties::isEnabled ( ) const
inline

Returns true if the elevation properties are enabled, i.e.

the raster layer values represent an elevation surface.

See also
setEnabled()

Definition at line 65 of file qgsrasterlayerelevationproperties.h.

◆ isVisibleInZRange()

bool QgsRasterLayerElevationProperties::isVisibleInZRange ( const QgsDoubleRange & range,
QgsMapLayer * layer = nullptr ) const
overridevirtual

Returns true if the layer should be visible and rendered for the specified z range.

Since QGIS 3.38 the layer argument can be used to specify the target layer.

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 217 of file qgsrasterlayerelevationproperties.cpp.

◆ layerLooksLikeDem()

bool QgsRasterLayerElevationProperties::layerLooksLikeDem ( QgsRasterLayer * layer)
static

Returns true if a raster layer looks like a DEM.

This method applies some heuristics to layer to determine whether it looks like a candidate for a DEM layer.

Specifically, it checks:

  • the layer's name for DEM-like wording hints
  • whether the layer contains a single band
  • whether the layer contains an attribute table (if so, it's unlikely to be a DEM)
  • the layer's data type
Since
QGIS 3.32

Definition at line 681 of file qgsrasterlayerelevationproperties.cpp.

◆ mode()

Qgis::RasterElevationMode QgsRasterLayerElevationProperties::mode ( ) const

Returns the elevation mode.

See also
setMode()
Since
QGIS 3.38

Definition at line 467 of file qgsrasterlayerelevationproperties.cpp.

◆ profileFillSymbol()

QgsFillSymbol * QgsRasterLayerElevationProperties::profileFillSymbol ( ) const

Returns the fill symbol used to render the raster profile in elevation profile plots.

See also
setProfileFillSymbol()

Definition at line 644 of file qgsrasterlayerelevationproperties.cpp.

◆ profileLineSymbol()

QgsLineSymbol * QgsRasterLayerElevationProperties::profileLineSymbol ( ) const

Returns the line symbol used to render the raster profile in elevation profile plots.

See also
setProfileLineSymbol()

Definition at line 632 of file qgsrasterlayerelevationproperties.cpp.

◆ profileSymbology()

Qgis::ProfileSurfaceSymbology QgsRasterLayerElevationProperties::profileSymbology ( ) const
inline

Returns the symbology option used to render the raster profile in elevation profile plots.

See also
setProfileSymbology()

Definition at line 212 of file qgsrasterlayerelevationproperties.h.

◆ readXml()

bool QgsRasterLayerElevationProperties::readXml ( const QDomElement & element,
const QgsReadWriteContext & context )
overridevirtual

Reads the elevation properties from a DOM element previously written by writeXml().

See also
writeXml()

Implements QgsMapLayerElevationProperties.

Definition at line 104 of file qgsrasterlayerelevationproperties.cpp.

◆ setBandNumber()

void QgsRasterLayerElevationProperties::setBandNumber ( int band)

Sets the band number from which the elevation should be taken.

Note
This is only considered when mode() is Qgis::RasterElevationMode::RepresentsElevationSurface.
See also
bandNumber()

Definition at line 481 of file qgsrasterlayerelevationproperties.cpp.

◆ setElevationLimit()

void QgsRasterLayerElevationProperties::setElevationLimit ( double limit)

Sets the elevation limit, which is used when profileSymbology() is Qgis::ProfileSurfaceSymbology::FillBelow or Qgis::ProfileSurfaceSymbology::FillAbove to limit the fill to a specific elevation range.

Set to NaN to indicate that there is no elevation limit.

See also
elevationLimit()
Since
QGIS 3.32

Definition at line 671 of file qgsrasterlayerelevationproperties.cpp.

◆ setEnabled()

void QgsRasterLayerElevationProperties::setEnabled ( bool enabled)

Sets whether the elevation properties are enabled, i.e.

the raster layer values represent an elevation surface.

See also
isEnabled()

Definition at line 457 of file qgsrasterlayerelevationproperties.cpp.

◆ setFixedRange()

void QgsRasterLayerElevationProperties::setFixedRange ( const QgsDoubleRange & range)

Sets the fixed elevation range for the raster.

Note
This is only considered when mode() is Qgis::RasterElevationMode::FixedElevationRange.
When a fixed range is set any zOffset() and zScale() is ignored.
See also
fixedRange()
Since
QGIS 3.38

Definition at line 790 of file qgsrasterlayerelevationproperties.cpp.

◆ setFixedRangePerBand()

void QgsRasterLayerElevationProperties::setFixedRangePerBand ( const QMap< int, QgsDoubleRange > & ranges)

Sets the fixed elevation range for each band.

Note
This is only considered when mode() is Qgis::RasterElevationMode::FixedRangePerBand.
When a fixed range is set any zOffset() and zScale() is ignored.
See also
fixedRangePerBand()
Since
QGIS 3.38

Definition at line 776 of file qgsrasterlayerelevationproperties.cpp.

◆ setMode()

void QgsRasterLayerElevationProperties::setMode ( Qgis::RasterElevationMode mode)

Sets the elevation mode.

See also
mode()
Since
QGIS 3.38

Definition at line 472 of file qgsrasterlayerelevationproperties.cpp.

◆ setProfileFillSymbol()

void QgsRasterLayerElevationProperties::setProfileFillSymbol ( QgsFillSymbol * symbol)

Sets the fill symbol used to render the raster profile in elevation profile plots.

Ownership of symbol is transferred to the plot.

See also
profileFillSymbol()

Definition at line 649 of file qgsrasterlayerelevationproperties.cpp.

◆ setProfileLineSymbol()

void QgsRasterLayerElevationProperties::setProfileLineSymbol ( QgsLineSymbol * symbol)

Sets the line symbol used to render the raster profile in elevation profile plots.

Ownership of symbol is transferred to the plot.

See also
profileLineSymbol()

Definition at line 637 of file qgsrasterlayerelevationproperties.cpp.

◆ setProfileSymbology()

void QgsRasterLayerElevationProperties::setProfileSymbology ( Qgis::ProfileSurfaceSymbology symbology)

Sets the symbology option used to render the raster profile in elevation profile plots.

See also
setProfileSymbology()

Definition at line 656 of file qgsrasterlayerelevationproperties.cpp.

◆ showByDefaultInElevationProfilePlots()

bool QgsRasterLayerElevationProperties::showByDefaultInElevationProfilePlots ( ) const
overridevirtual

Returns true if the layer should be visible by default in newly created elevation profile plots.

Subclasses should override this with logic which determines whether the layer is likely desirable to be initially checked in these plots.

Since
QGIS 3.26

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 434 of file qgsrasterlayerelevationproperties.cpp.

◆ significantZValues()

QList< double > QgsRasterLayerElevationProperties::significantZValues ( QgsMapLayer * layer) const
overridevirtual

Returns a list of significant elevation/z-values for the specified layer, using the settings defined by this elevation properties object.

These values will be highlighted in elevation related widgets for the layer.

Since
QGIS 3.38

Reimplemented from QgsMapLayerElevationProperties.

Definition at line 362 of file qgsrasterlayerelevationproperties.cpp.

◆ writeXml()

QDomElement QgsRasterLayerElevationProperties::writeXml ( QDomElement & element,
QDomDocument & doc,
const QgsReadWriteContext & context )
overridevirtual

Writes the properties to a DOM element, to be used later with readXml().

See also
readXml()

Implements QgsMapLayerElevationProperties.

Definition at line 47 of file qgsrasterlayerelevationproperties.cpp.


The documentation for this class was generated from the following files: