GeoTiffElevationCoverage

Terrain served from a tiled GeoTIFF digital elevation model — a single-band Int16 or Float32 raster, typically a national DEM tile, a LiDAR-derived DTM, or a drone survey's elevation output.

The pyramid is built over the file's own extent (not the whole globe) so the coverage's sampler never wraps longitude across an unrelated part of the world, and each tile is resampled from the overview level closest to its resolution. GDAL_NODATA voids and areas the file doesn't cover come through as the engine's missing-post sentinel, so a partial DEM composites over coarser coverages instead of punching holes in the terrain.

The coverage holds the file open while it is attached to the globe; close releases it.

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open val boundingSector: Sector

Bounding sector of the elevation coverage.

Link copied to clipboard

See TiledImageLayer.cachedSourceInfo — same shape for elevation coverages. The cache provider here is the elevation source factory, not a tile-source decorator.

Link copied to clipboard

Concurrent cache-only reads allowed. Generous vs retrievalQueueSize: cache reads are cheap local I/O and must get their own budget separate from the network-retrieval budget, so a slow network DEM fetch holding the network slots can't stall cached tiles behind it.

Link copied to clipboard
val dataset: GeoTiffDataset

The open GeoTIFF backing this coverage.

Link copied to clipboard
open override var displayName: String?

Human-readable elevation coverage name

Link copied to clipboard
var elevationSourceFactory: ElevationSourceFactory
Link copied to clipboard
open override var isEnabled: Boolean

Determines if current elevation coverage should be processed during rendering

Link copied to clipboard

Controls how many concurrent tile requests are allowed for this coverage.

Link copied to clipboard
override val sector: Sector

Elevation content bounding sector

Link copied to clipboard
var tileMatrixSet: TileMatrixSet

Tile matrix which defines elevation coverage area.

Link copied to clipboard
open override val timestamp: Long

Last elevation update timestamp

Link copied to clipboard

Unique identifier of the coverage type, defined by elevation source factory content type

Functions

Link copied to clipboard
open override fun clear()

Clears elevation runtime data

Link copied to clipboard
open override fun clone(): ERROR CLASS: Unresolved name: also

Makes a copy of this elevation coverage.

Link copied to clipboard
fun close()

Release the underlying file. The coverage returns no elevations afterwards.

Link copied to clipboard

Elevation-coverage counterpart of TiledImageLayer.contentEntry — coverages have no "self-contained file factory" case in the current factory set, so this is just the ContentManager adapter behind a uniform call site.

Link copied to clipboard
open override fun getElevation(latitude: Angle, longitude: Angle, retrieve: Boolean): Float

Gets elevation at specified location

Link copied to clipboard
open override fun getElevationGrid(gridSector: Sector, gridWidth: Int, gridHeight: Int, result: FloatArray)

Gets elevation values for the specified sector with required width and height resolution

Link copied to clipboard
open override fun getElevationLimits(sector: Sector, result: FloatArray)

Gets elevation limits at specified sector

Link copied to clipboard
open override fun getUserProperty(key: Any): Any?

Gets optional user property

Link copied to clipboard
open override fun hasUserProperty(key: Any): Boolean

Checks optional user property exists

Link copied to clipboard
open override fun isChangedSince(time: Long, sector: Sector): Boolean

Checks if coverage data influencing the specified sector could have changed after the specified timestamp

Link copied to clipboard
fun TiledElevationCoverage.launchBulkRetrieval(sector: Sector, resolution: ClosedRange<Angle>, scope: CoroutineScope = GlobalScope, maxRetries: Int = 3, retryTimeoutShort: Duration = 5.seconds, retryTimeoutLong: Duration = 15.seconds, overrideCache: Boolean = false, onProgress: (downloaded: Long, skipped: Long, total: Long) -> Unit? = null): Job?

Download every elevation tile that intersects sector across every tile matrix whose pixel-resolution falls in resolution, writing each tile through to the coverage's cache.

Link copied to clipboard
open override fun putUserProperty(key: Any, value: Any): Any?

Puts optional user property

Link copied to clipboard
open override fun removeUserProperty(key: Any): Any?

Removes optional user property

Link copied to clipboard

See setOfflineOnly on TiledImageLayer. The OfflineToggleable lives on the coverage's elevationSourceFactory (the platform-specific CachedElevationSourceFactory / GpkgCachedElevationSourceFactory both implement it). No-op when the coverage is wired to a network-only factory.

Link copied to clipboard
fun setupCoverageCache(capacity: Long, lowWater: Long = (capacity * 0.75).toLong())

Setup custom coverage cache size according to device capabilities and user needs.