Skip to main content

Interface: TilesetLevel

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:9

A single zoom level in a generic raster tileset.

This interface abstracts over both TileMatrixSet levels and Zarr multiscale levels, enabling a single traversal algorithm to work with both.

Properties

crsBoundsToTileRange()

crsBoundsToTileRange: (projectedMinX, projectedMinY, projectedMaxX, projectedMaxY) => object

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:52

Get the range of tile indices that overlap a given CRS bounding box.

The returned range is inclusive on both ends: a consumer should iterate for (let col = minCol; col <= maxCol; col++).

Used by the traversal algorithm to find child tiles from a parent tile's projected bounds.

Parameters

projectedMinX

number

projectedMinY

number

projectedMaxX

number

projectedMaxY

number

Returns

object

maxCol

maxCol: number

maxRow

maxRow: number

minCol

minCol: number

minRow

minRow: number


matrixHeight

matrixHeight: number

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:14

Number of tiles down this level (rows).


matrixWidth

matrixWidth: number

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:11

Number of tiles across this level (columns).


metersPerPixel

metersPerPixel: number

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:28

Meters per pixel — used for LOD selection.

For TileMatrix: scaleDenominator * SCREEN_PIXEL_SIZE (0.00028 m). For Zarr: sqrt(|scaleX * scaleY|) * mpu (meters per CRS unit).


projectedTileCorners()

projectedTileCorners: (col, row) => Corners

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:41

Get the projected bounding box of a tile in the source CRS.

The tileset is not guaranteed to be axis aligned, so this returns a rotated rectangle as four corners, which preserves rotation/skew information that would be lost in an axis-aligned bbox.

For TMS this delegates to xy_bounds(); for Zarr it uses affine math directly. Using a function (rather than a stored affine) lets TMS handle variable tile widths (coalesced rows) and bottomLeft origins cleanly.

Parameters

col

number

row

number

Returns

Corners


tileHeight

tileHeight: number

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:20

Height of each tile in pixels.


tileTransform()

tileTransform: (col, row) => object

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:71

Get per-tile forward/inverse coordinate transforms for the tile at (col, row).

  • forwardTransform(px, py) maps a pixel coordinate within the tile (origin at the top-left of the tile, (0,0) at the top-left pixel) to a coordinate in the source CRS.
  • inverseTransform(cx, cy) is its inverse.

For axis-aligned tilesets these are affine; the interface allows non-affine transforms (e.g. GCPs) in the future.

Parameters

col

number

row

number

Returns

object

forwardTransform()

forwardTransform: (x, y) => [number, number]

Parameters
x

number

y

number

Returns

[number, number]

inverseTransform()

inverseTransform: (x, y) => [number, number]

Parameters
x

number

y

number

Returns

[number, number]


tileWidth

tileWidth: number

Defined in: packages/deck.gl-raster/src/raster-tileset/tileset-interface.ts:17

Width of each tile in pixels.