LuciadCPillar C# 2024.0.05
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Class Reference

This builder class allows to create a multi-level tiled raster model. More...

Inheritance diagram for Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder:

Public Member Functions

 MultilevelTiledRasterModelBuilder (Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder other)
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder AddLevel (uint tileWidthPixels, uint tileHeightPixels, uint columnCount, uint rowCount, Luciad.Geometries.Bounds bounds)
 Adds a level of detail to the raster data structure. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder AttributionProvider (Luciad.Models.Rasters.IMultilevelTiledAttributionProvider attributionProvider)
 Sets the attribution provider for this model. More...
 
Luciad.Models.Rasters.IRasterModel Build ()
 Creates the raster model. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder DataBounds (Luciad.Geometries.Bounds bounds)
 Defines the extent of where actual data is a available. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder DataRetriever (Luciad.Models.Rasters.IMultilevelTiledRasterDataRetriever dataRetriever)
 Defines the implementation to be used to retrieve the raster tile data. More...
 
void Dispose ()
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Elevation ()
 Marks this model as an elevation model. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder ElevationNoDataValue (float noDataValue)
 Sets a no-data value for elevation data. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder EnableInvalidation ()
 Allows to create a raster model which can be invalidated. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder ModelMetadata (Luciad.Models.ModelMetadata modelMetadata)
 Defines the model metadata. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Reference (Luciad.Geodesy.CoordinateReference modelReference)
 Defines the reference in which the raster data is defined. More...
 
Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder SamplingMode (Luciad.Rasters.RasterSamplingMode samplingMode)
 Defines the sampling mode of the data. More...
 

Static Public Member Functions

static Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder NewBuilder ()
 Creates the builder class to create a raster model. More...
 

Detailed Description

This builder class allows to create a multi-level tiled raster model.

The multi-level tile structure is defined by a reference and a number of levels where each level has a bounds and a number of columns and rows. The structure of the tiles is organized as follows:

  • Level 0 is the least detailed level.
  • The tile coordinate (N,0,0) on level N is the top-left tile.

The IMultilevelTiledRasterDataRetriever interface allows to load the tile data, or it allows to indicate that there is no data available for a tile. The latter for example allows to create low resolution overlays on high resolution data.

The following figure shows how such a multi-level tile structure looks like.

Multi-level tile structure.

This builder supports either imagery (RGBA) data or elevation data. The latter can be enabled by calling MultilevelTiledRasterModelBuilder.Elevation.

This article gives an example of how to use this class.

Tile Matrix Set limitations.
The tiles of detail levels should overlap with tiles of the parent level. If this is not the case such tiles are not painted on the map.
Since
2022.1

Constructor & Destructor Documentation

◆ MultilevelTiledRasterModelBuilder()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.MultilevelTiledRasterModelBuilder ( Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder  other)
inline

Member Function Documentation

◆ AddLevel()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.AddLevel ( uint  tileWidthPixels,
uint  tileHeightPixels,
uint  columnCount,
uint  rowCount,
Luciad.Geometries.Bounds  bounds 
)
inline

Adds a level of detail to the raster data structure.

At least 1 level must be created.

The order in which this method is called matters: it determines which level is added. The first call is for level 0 (the least detailed level), the second call for level 1, and so on..

All levels must be defined in the same reference.

Parameters
tileWidthPixelsthe width, in pixels, for a tile within the tiled structure.
tileHeightPixelsthe height, in pixels, for a tile within the tiled structure.
columnCountthe number of columns within the tiled structure.
rowCountthe number of rows within the tiled structure.
boundsthe extent of the tiled structure.
Returns
this builder.

◆ AttributionProvider()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.AttributionProvider ( Luciad.Models.Rasters.IMultilevelTiledAttributionProvider  attributionProvider)
inline

Sets the attribution provider for this model.

By default, no attribution provider is set.

Parameters
attributionProviderthe attribution provider for the model. Can be null.
Returns
this builder.
Since
2024.0

◆ Build()

Luciad.Models.Rasters.IRasterModel Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.Build ( )
inline

Creates the raster model.

Mandatory information:

  • the reference of the raster data
  • at least one level of detail
    • all levels are defined in the same reference
  • model metadata
  • data retriever

When calling the method MultilevelTiledRasterModelBuilder.DataBounds the bounds must be contained within the bounds for every defined level.

Returns
the raster model, or a System.InvalidOperationException when the conditions to build the raster model are not met.

◆ DataBounds()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.DataBounds ( Luciad.Geometries.Bounds  bounds)
inline

Defines the extent of where actual data is a available.

This information is optional. If not defined the extent of the data is assumed to be based the entire structure.

Parameters
boundsthe extent of the 'actual' data.
Returns
this builder.

◆ DataRetriever()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.DataRetriever ( Luciad.Models.Rasters.IMultilevelTiledRasterDataRetriever  dataRetriever)
inline

Defines the implementation to be used to retrieve the raster tile data.

This information is mandatory. A user implementation must be provided.

Parameters
dataRetrieverthe interface that is called to retrieve the raster tile data. Cannot be null.
Returns
this builder.

◆ Dispose()

void Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.Dispose ( )
inline

◆ Elevation()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.Elevation ( )
inline

Marks this model as an elevation model.

If this method is called, the configured IMultilevelTiledRasterDataRetriever must return elevation data as well. See IMultilevelTiledRasterDataRetrieverCallback.OnDataAvailable and IMultilevelTiledRasterDataRetrieverCallback.OnImageAvailable for more information.

Returns
this builder

◆ ElevationNoDataValue()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.ElevationNoDataValue ( float  noDataValue)
inline

Sets a no-data value for elevation data.

When the provided elevation data in IMultilevelTiledRasterDataRetrieverCallback contains this value, it is interpreted as a no-data value. This means that consumers of the data will have information that no data is available at that location, and that they can choose an appropriate fallback. For example when terrain is visualized, it can decide to fall back on other elevation data when it encounters a no-data elevation value.

This method is optional.

This method must only be called when the Elevation method is also called. If not, the Build method will throw an exception.

Parameters
noDataValuethe no-data value to use for elevation
Returns
this builder
Since
2023.0

◆ EnableInvalidation()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.EnableInvalidation ( )
inline

Allows to create a raster model which can be invalidated.

By default raster models are created without invalidation.

Call this method when you need a raster model for which the content can change. Then a IRasterModel is created that returns true for IRasterModel.CanInvalidate and for which you can call the method IRasterModel.Invalidate to indicate the content of the raster model has changed.

Returns
this builder.

◆ ModelMetadata()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.ModelMetadata ( Luciad.Models.ModelMetadata  modelMetadata)
inline

Defines the model metadata.

This information is mandatory.

Parameters
modelMetadatathe model metadata.
Returns
this builder.

◆ NewBuilder()

static Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.NewBuilder ( )
inlinestatic

Creates the builder class to create a raster model.

Returns
the builder class for creation of a 'basic' IRasterModel.

◆ Reference()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.Reference ( Luciad.Geodesy.CoordinateReference  modelReference)
inline

Defines the reference in which the raster data is defined.

This information is mandatory.

Parameters
modelReferencethe reference for the raster data. Cannot be null.
Returns
this builder.

◆ SamplingMode()

Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder Luciad.Models.Rasters.MultilevelTiledRasterModelBuilder.SamplingMode ( Luciad.Rasters.RasterSamplingMode  samplingMode)
inline

Defines the sampling mode of the data.

This information is optional. The default value is Area.

Parameters
samplingModethe sampling mode of the data.
Returns
this builder.