Skip to main content

Class: AffineTilesetLevel

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:34

A RasterTilesetLevel described by a single affine transform plus tile and array sizes.

This handles axis-aligned, rotated, skewed, and non-square-pixel grids uniformly. Sources that fit this shape (tiled GeoTIFF overviews, GeoZarr multiscales) can construct one of these per resolution level instead of implementing RasterTilesetLevel manually.

Implements​

Constructors​

Constructor​

new AffineTilesetLevel(options): AffineTilesetLevel

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:51

Parameters​

options​

AffineTilesetLevelOptions

Returns​

AffineTilesetLevel

Properties​

matrixHeight​

readonly matrixHeight: number

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:38

Number of tiles down this level (rows).

Implementation of​

RasterTilesetLevel.matrixHeight


matrixWidth​

readonly matrixWidth: number

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:37

Number of tiles across this level (columns).

Implementation of​

RasterTilesetLevel.matrixWidth


metersPerPixel​

readonly metersPerPixel: number

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:39

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).

Implementation of​

RasterTilesetLevel.metersPerPixel


projectedBounds​

readonly projectedBounds: Bounds

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:44

Source-CRS bounding box of the level's array [minX, minY, maxX, maxY]. Computed from the affine applied to the four array corners.


tileHeight​

readonly tileHeight: number

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:36

Height of each tile in pixels.

Implementation of​

RasterTilesetLevel.tileHeight


tileWidth​

readonly tileWidth: number

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:35

Width of each tile in pixels.

Implementation of​

RasterTilesetLevel.tileWidth

Methods​

crsBoundsToTileRange()​

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

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:122

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++).

Tiles that only touch the bounding box along an edge, within a small floating-point tolerance, are not included. Otherwise, in an aligned pyramid, every parent tile would also claim its neighbors' children, and the traversal would visit and select those children once per parent.

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

Implementation of​

RasterTilesetLevel.crsBoundsToTileRange


projectedTileCorners()​

projectedTileCorners(col, row): Corners

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:82

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.

Tiles in the last column and row may extend past the data. A level that knows its array size clips them to it, so the corners cover only the part of the tile that has data.

Parameters​

col​

number

row​

number

Returns​

Corners

Implementation of​

RasterTilesetLevel.projectedTileCorners


tileTransform()​

tileTransform(col, row): object

Defined in: packages/deck.gl-raster/src/raster-tileset/affine-tileset-level.ts:103

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: ProjectionFunction

inverseTransform​

inverseTransform: ProjectionFunction

Implementation of​

RasterTilesetLevel.tileTransform