23  const QMap<QString, QgsMapLayer *> &mapLayers = project->
mapLayers();
 
   26  double min = std::numeric_limits<double>::quiet_NaN();
 
   27  double max = std::numeric_limits<double>::quiet_NaN();
 
   29  for ( QMap<QString, QgsMapLayer *>::const_iterator it = mapLayers.constBegin(); it != mapLayers.constEnd(); ++it )
 
   31    currentLayer = it.value();
 
   40    if ( layerRange.
lower() > std::numeric_limits< double >::lowest() )
 
   42      if ( std::isnan( min ) || layerRange.
lower() < min )
 
   43        min = layerRange.
lower();
 
   46    if ( layerRange.
upper() < std::numeric_limits< double >::max() )
 
   48      if ( std::isnan( max ) || layerRange.
upper() > max )
 
   49        max = layerRange.
upper();
 
   53  return QgsDoubleRange( std::isnan( min ) ? std::numeric_limits< double >::lowest() : min,
 
   54                         std::isnan( max ) ? std::numeric_limits< double >::max() : max );
 
 
   59  const QMap<QString, QgsMapLayer *> &mapLayers = project->
mapLayers();
 
   60  QList< QgsMapLayer * > layers;
 
   61  for ( QMap<QString, QgsMapLayer *>::const_iterator it = mapLayers.constBegin(); it != mapLayers.constEnd(); ++it )
 
 
   72  QSet< double > values;
 
   76    if ( !currentLayer->elevationProperties() || !currentLayer->elevationProperties()->hasElevation() )
 
   79    const QList< double > layerValues = currentLayer->elevationProperties()->significantZValues( currentLayer );
 
   80    for ( 
double value : layerValues )
 
   82      values.insert( value );
 
   86  QList< double > res = qgis::setToList( values );
 
   87  std::sort( res.begin(), res.end() );
 
 
   98  switch ( layer->
type() )
 
  104        properties->setEnabled( 
true );
 
  107        properties->setBandNumber( 1 );
 
 
@ RepresentsElevationSurface
Pixel values represent an elevation surface.
 
@ Group
Composite group layer. Added in QGIS 3.24.
 
@ Plugin
Plugin based layer.
 
@ TiledScene
Tiled scene layer. Added in QGIS 3.34.
 
@ Annotation
Contains freeform, georeferenced annotations. Added in QGIS 3.16.
 
@ VectorTile
Vector tile layer. Added in QGIS 3.14.
 
@ Mesh
Mesh layer. Added in QGIS 3.2.
 
@ PointCloud
Point cloud layer. Added in QGIS 3.18.
 
QgsRange which stores a range of double values.
 
bool isInfinite() const
Returns true if the range consists of all possible values.
 
static QList< double > significantZValuesForLayers(const QList< QgsMapLayer * > &layers)
Returns a list of significant elevation/z-values for the specified layers.
 
static QgsDoubleRange calculateZRangeForProject(QgsProject *project)
Calculates the elevation range for a project.
 
static bool enableElevationForLayer(QgsMapLayer *layer)
Automatically enables elevation for a map layer, using reasonable defaults.
 
static QList< double > significantZValuesForProject(QgsProject *project)
Returns a list of significant elevation/z-values for the specified project, using the values from lay...
 
static bool canEnableElevationForLayer(QgsMapLayer *layer)
Returns true if elevation can be enabled for a map layer.
 
virtual QgsDoubleRange calculateZRange(QgsMapLayer *layer) const
Attempts to calculate the overall elevation or z range for the specified layer, using the settings de...
 
virtual bool hasElevation() const
Returns true if the layer has an elevation or z component.
 
Base class for all map layer types.
 
virtual QgsMapLayerElevationProperties * elevationProperties()
Returns the layer's elevation properties.
 
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
 
QMap< QString, QgsMapLayer * > mapLayers(const bool validOnly=false) const
Returns a map of all registered layers by layer ID.
 
T lower() const
Returns the lower bound of the range.
 
T upper() const
Returns the upper bound of the range.
 
Raster layer specific subclass of QgsMapLayerElevationProperties.