A height provider based on a raster model.
More...
#include <luciad/models/rasters/RasterModelHeightProvider.h>
A height provider based on a raster model.
This class is thread-safe.
Related article: Retrieving height data.
- Since
- 2023.0
◆ RasterModelHeightProvider() [1/2]
◆ RasterModelHeightProvider() [2/2]
◆ ~RasterModelHeightProvider()
luciad::RasterModelHeightProvider::~RasterModelHeightProvider |
( |
| ) |
|
◆ getReference()
const std::shared_ptr< CoordinateReference > & luciad::RasterModelHeightProvider::getReference |
( |
| ) |
const |
Returns the coordinate reference of this height provider.
The input and output of retrieveHeightAt
are all expressed in this reference.
- Returns
- the coordinate reference of this height provider.
◆ isInterpolate()
bool luciad::RasterModelHeightProvider::isInterpolate |
( |
| ) |
const |
Returns whether (bilinear) interpolation is used when calculating height values form the source data.
- Returns
- whether (bilinear) interpolation is used when calculating height values form the source data.
◆ newBuilder()
static Builder luciad::RasterModelHeightProvider::newBuilder |
( |
| ) |
|
|
static |
◆ retrieveHeightAt() [1/2]
std::optional< double > luciad::RasterModelHeightProvider::retrieveHeightAt |
( |
Coordinate |
coordinate, |
|
|
const PixelDensity & |
pixelDensity |
|
) |
| const |
Retrieve the height data at the provided point at a provided pixel density.
Looks for a tile in the underlying raster data covering the specified point and with a pixel density equal or lower to the specified density, and returns elevation data based on that tile. If several tiles match, then the most detailed tile is used; if all tiles covering the point have a density higher than requested density, then the least detailed tile is used.
- Parameters
-
coordinate | The point for which the height is requested, expressed in the coordinate reference of the height provider. If the height provider reference is a 2D reference, Z-value is ignored. |
pixelDensity | The pixel density used to determine the level of detail to use in the underlying data. Must be in the coordinate reference of the height provider. |
- Returns
- the height expressed in the reference of the height provider, or
std::nullopt
if no data is available for this coordinate.
◆ retrieveHeightAt() [2/2]
std::optional< double > luciad::RasterModelHeightProvider::retrieveHeightAt |
( |
Coordinate |
coordinate, |
|
|
double |
pixelDensity |
|
) |
| const |
Retrieve the height data at the provided point at a provided pixel density.
Looks for a tile in the underlying raster data covering the specified point and with a pixel density equal or lower to the specified density, and returns elevation data based on that tile. If several tiles match, then the most detailed tile is used; if all tiles covering the point have a density higher than requested density, then the least detailed tile is used.
- Parameters
-
coordinate | The point for which the height is requested, expressed in the coordinate reference of the height provider. If the height provider reference is a 2D reference, Z-value is ignored. |
pixelDensity | The pixel density used to determine the level of detail to use in the underlying data. Assumed to be in the coordinate reference of the height provider. |
- Returns
- the height expressed in the reference of the height provider, or
std::nullopt
if no data is available for this coordinate.
◆ setInterpolate()
void luciad::RasterModelHeightProvider::setInterpolate |
( |
bool |
interpolate | ) |
|
Sets whether (bilinear) interpolation is used when calculating height values form the source data.
Using interpolation makes sure that neighbouring height values form a smoother curve.
- Parameters
-
interpolate | whether interpolation is used |