In this mode, each band in the raster can have a fixed elevation
range associated with it. This is designed for data sources which
expose elevation related data in bands, eg netcdf files, such
as a raster with temperate data at different ocean depths.
This introduces a new option for specifying how raster layers
have associated elevation. It permits a fixed elevation range
to be set for the layer. It can be used when the layer has
a single fixed elevation, or a range (slice) of elevation values.
Users can set the lower and upper elevation range for the layer,
and whether the lower or upper limits are inclusive or
exclusive.
When enabled, the layer will only be visible in elevation
filtered 2d maps when the layer's range is included in the map's
z range.
Attempts to set the input band for the renderer.
Returns TRUE if the band was successfully set, or FALSE if the
band could not be set.
This was implemented in various raster renderer subclasses,
but it was necessary to down cast and then call the individual
methods (which don't have consistent names!).
Instead, add a top level virtual method so that it's easy to
change the input band for the renderers.
This is messy, as there's no way we can possibly make the current,
stable API of this class safe. We have to resort to an opt-in
"safe" mode which exposes a non-dangerous API.
This should hopefully fix issues where the qt event loop causes
destruction of the detected connection before listener slot is
called and is able to take ownership of the signal argument...
And hookup for point cloud identification. We actually already
correctly handled z range filtering for point cloud identify,
because that method is using the canvas' render context and
filtering by the corresponding z range. But this new approach
makes things more flexible and usable for different layer types.
Returns the vertical CRS associated with this CRS object.
In the case of a compound CRS, this method will return just the vertical CRS component.
An invalid CRS will be returned if the object does not contain a vertical component.
And expose through Project Properties elevation settings widget
This setting allows users to specify the upper and lower
elevation limits associated with the project. (I.e. its an
equivalent to QgsProjectTimeSettings::temporalRange)
Similar to the existing setting for temporal filtering of 2d layout
maps, this setting allows users to set a specific elevation/z range
for a layout map item. When set, map layers with support for 2d
z range filtering (currently point clouds and raster DEMs) will
be filtered to show only content within this range.
The z range can be data-defined, allowing differing z range
for different atlas or report features.
Allows users to set an extent limit for the layer, so that
features are only ever loaded within this extent
The extent can be set from the data source manager before adding
the layer initially, or modified from the layer properties, source
tab.
to QgsRasterTransparency.TransparentSingleValuePixel. Allows (via
API only) control over whether the extremities of the range
should be included in the transparency.
Also add equality operator, repr to these classes, and additional
tests
These flags reflect that retrieval of the provider's 2D or 3D extent
retrieval via QgsDataProvider::extent()/extent3D() are ALWAYS guaranteed
to be trivial/fast to calculate and involve absolutely no extra work.