@developmentseed/deck.gl-raster 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/gpu-modules/composite-bands.d.ts +85 -0
  2. package/dist/gpu-modules/composite-bands.d.ts.map +1 -0
  3. package/dist/gpu-modules/composite-bands.js +141 -0
  4. package/dist/gpu-modules/composite-bands.js.map +1 -0
  5. package/dist/gpu-modules/cutline-bbox.d.ts +70 -0
  6. package/dist/gpu-modules/cutline-bbox.d.ts.map +1 -0
  7. package/dist/gpu-modules/cutline-bbox.js +100 -0
  8. package/dist/gpu-modules/cutline-bbox.js.map +1 -0
  9. package/dist/gpu-modules/index.d.ts +6 -0
  10. package/dist/gpu-modules/index.d.ts.map +1 -1
  11. package/dist/gpu-modules/index.js +3 -0
  12. package/dist/gpu-modules/index.js.map +1 -1
  13. package/dist/gpu-modules/linear-rescale.d.ts +39 -0
  14. package/dist/gpu-modules/linear-rescale.d.ts.map +1 -0
  15. package/dist/gpu-modules/linear-rescale.js +40 -0
  16. package/dist/gpu-modules/linear-rescale.js.map +1 -0
  17. package/dist/gpu-modules/types.d.ts +10 -1
  18. package/dist/gpu-modules/types.d.ts.map +1 -1
  19. package/dist/index.d.ts +6 -10
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +4 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/layer-utils.d.ts +28 -0
  24. package/dist/layer-utils.d.ts.map +1 -0
  25. package/dist/layer-utils.js +56 -0
  26. package/dist/layer-utils.js.map +1 -0
  27. package/dist/mesh-layer/mesh-layer.d.ts +15 -3
  28. package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
  29. package/dist/mesh-layer/mesh-layer.js +25 -3
  30. package/dist/mesh-layer/mesh-layer.js.map +1 -1
  31. package/dist/multi-raster-tileset/index.d.ts +5 -0
  32. package/dist/multi-raster-tileset/index.d.ts.map +1 -0
  33. package/dist/multi-raster-tileset/index.js +3 -0
  34. package/dist/multi-raster-tileset/index.js.map +1 -0
  35. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts +75 -0
  36. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts.map +1 -0
  37. package/dist/multi-raster-tileset/multi-tileset-descriptor.js +97 -0
  38. package/dist/multi-raster-tileset/multi-tileset-descriptor.js.map +1 -0
  39. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts +129 -0
  40. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts.map +1 -0
  41. package/dist/multi-raster-tileset/secondary-tile-resolver.js +88 -0
  42. package/dist/multi-raster-tileset/secondary-tile-resolver.js.map +1 -0
  43. package/dist/raster-layer.d.ts +30 -12
  44. package/dist/raster-layer.d.ts.map +1 -1
  45. package/dist/raster-layer.js +20 -28
  46. package/dist/raster-layer.js.map +1 -1
  47. package/dist/raster-tileset/index.d.ts +4 -1
  48. package/dist/raster-tileset/index.d.ts.map +1 -1
  49. package/dist/raster-tileset/index.js +2 -1
  50. package/dist/raster-tileset/index.js.map +1 -1
  51. package/dist/raster-tileset/raster-tile-traversal.d.ts +35 -51
  52. package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
  53. package/dist/raster-tileset/raster-tile-traversal.js +128 -172
  54. package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
  55. package/dist/raster-tileset/raster-tileset-2d.d.ts +8 -22
  56. package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
  57. package/dist/raster-tileset/raster-tileset-2d.js +18 -81
  58. package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
  59. package/dist/raster-tileset/tile-matrix-set.d.ts +20 -0
  60. package/dist/raster-tileset/tile-matrix-set.d.ts.map +1 -0
  61. package/dist/raster-tileset/tile-matrix-set.js +121 -0
  62. package/dist/raster-tileset/tile-matrix-set.js.map +1 -0
  63. package/dist/raster-tileset/tileset-interface.d.ts +78 -0
  64. package/dist/raster-tileset/tileset-interface.d.ts.map +1 -0
  65. package/dist/raster-tileset/tileset-interface.js +2 -0
  66. package/dist/raster-tileset/tileset-interface.js.map +1 -0
  67. package/dist/raster-tileset/types.d.ts +10 -18
  68. package/dist/raster-tileset/types.d.ts.map +1 -1
  69. package/package.json +14 -14
@@ -1,6 +1,5 @@
1
1
  /**
2
- * This file implements tile traversal for generic 2D tilesets defined by
3
- * TileMatrixSet tile layouts.
2
+ * This file implements tile traversal for generic 2D tilesets.
4
3
  *
5
4
  * The main algorithm works as follows:
6
5
  *
@@ -8,14 +7,16 @@
8
7
  * necessarily the whole world)
9
8
  * 2. Test if each tile is visible using viewport frustum culling
10
9
  * 3. For visible tiles, compute distance-based LOD (Level of Detail)
11
- * 4. If LOD is insufficient, recursively subdivide into 4 child tiles
10
+ * 4. If LOD is insufficient, recursively subdivide into child tiles
12
11
  * 5. Select tiles at appropriate zoom levels based on distance from camera
13
12
  *
14
13
  * The result is a set of tiles at varying zoom levels that efficiently
15
14
  * cover the visible area with appropriate detail.
15
+ *
16
+ * The traversal is driven by a {@link TilesetDescriptor}, which abstracts over
17
+ * both OGC TileMatrixSet grids and Zarr multiscale pyramids.
16
18
  */
17
19
  import { _GlobeViewport, assert } from "@deck.gl/core";
18
- import { xy_bounds } from "@developmentseed/morecantile";
19
20
  import { CullingVolume, makeOrientedBoundingBoxFromPoints, Plane, } from "@math.gl/culling";
20
21
  import { lngLatToWorld, worldToLngLat } from "@math.gl/web-mercator";
21
22
  /**
@@ -74,18 +75,15 @@ const EPSG_3857_CIRCUMFERENCE = 2 * Math.PI * WGS84_ELLIPSOID_A;
74
75
  const EPSG_3857_HALF_CIRCUMFERENCE = EPSG_3857_CIRCUMFERENCE / 2;
75
76
  // Maximum latitude representable in Web Mercator (EPSG:3857), in degrees.
76
77
  const MAX_WEB_MERCATOR_LAT = 85.05112877980659;
77
- // 0.28 mm per pixel
78
- // https://docs.ogc.org/is/17-083r4/17-083r4.html#toc15
79
- const SCREEN_PIXEL_SIZE = 0.00028;
80
78
  /**
81
- * Raster Tile Node - represents a single tile in the TileMatrixSet structure
79
+ * Raster Tile Node - represents a single tile in a tileset pyramid.
82
80
  *
83
81
  * Akin to the upstream OSMNode class.
84
82
  *
85
83
  * This node class uses the following coordinate system:
86
84
  *
87
- * - x: tile column (0 to TileMatrix.matrixWidth, left to right)
88
- * - y: tile row (0 to TileMatrix.matrixHeight, top to bottom)
85
+ * - x: tile column (0 to TilesetLevel.matrixWidth, left to right)
86
+ * - y: tile row (0 to TilesetLevel.matrixHeight, top to bottom)
89
87
  * - z: overview level. This assumes ordering where: 0 = coarsest, higher = finer
90
88
  */
91
89
  export class RasterTileNode {
@@ -95,7 +93,7 @@ export class RasterTileNode {
95
93
  y;
96
94
  /** Zoom index assumed to be (higher = finer detail) */
97
95
  z;
98
- metadata;
96
+ descriptor;
99
97
  /**
100
98
  * Flag indicating whether any descendant of this tile is visible.
101
99
  *
@@ -111,55 +109,50 @@ export class RasterTileNode {
111
109
  selected;
112
110
  /** A cache of the children of this node. */
113
111
  _children;
114
- projectTo3857;
115
- projectTo4326;
116
- constructor(x, y, z, { metadata, projectTo3857, projectTo4326, }) {
112
+ /**
113
+ * A cached bounding volume for this tile, used for frustum culling
114
+ *
115
+ * This stores the result of `getBoundingVolume`.
116
+ */
117
+ _boundingVolume;
118
+ constructor(x, y, z, { descriptor }) {
117
119
  this.x = x;
118
120
  this.y = y;
119
121
  this.z = z;
120
- this.metadata = metadata;
121
- this.projectTo3857 = projectTo3857;
122
- this.projectTo4326 = projectTo4326;
122
+ this.descriptor = descriptor;
123
123
  }
124
- /** Get overview info for this tile's z level */
125
- get tileMatrix() {
126
- return this.metadata.tileMatrices[this.z];
124
+ /** Get the level info for this tile's z index. */
125
+ get level() {
126
+ return this.descriptor.levels[this.z];
127
127
  }
128
128
  /** Get the children of this node.
129
129
  *
130
130
  * Find all tiles at level this.z + 1 whose spatial extent overlaps this tile.
131
131
  *
132
- * A TileMatrixSet is not a quadtree, but rather a stack of independent grids. We can't cleanly find child tiles by decimation directly.
133
- *
132
+ * A tileset pyramid is not guaranteed to be a quadtree it is a stack of
133
+ * independent grids. We find children by mapping the parent tile's CRS bounds
134
+ * into the child grid using {@link TilesetLevel.crsBoundsToTileRange}.
134
135
  */
135
136
  get children() {
136
137
  if (!this._children) {
137
- const maxZ = this.metadata.tileMatrices.length - 1;
138
+ const maxZ = this.descriptor.levels.length - 1;
138
139
  if (this.z >= maxZ) {
139
140
  // Already at finest resolution, no children
140
141
  this._children = null;
141
142
  return null;
142
143
  }
143
- // In TileMatrixSet ordering: refine to z + 1 (finer detail)
144
- const parentMatrix = this.tileMatrix;
145
144
  const childZ = this.z + 1;
146
- const childMatrix = this.metadata.tileMatrices[childZ];
147
- // Compute this tile's bounds in TMS' CRS
148
- const parentBounds = computeProjectedTileBounds(parentMatrix, {
149
- x: this.x,
150
- y: this.y,
151
- });
145
+ const childLevel = this.descriptor.levels[childZ];
146
+ // Compute this tile's bounds in the source CRS
147
+ const parentCorners = this.level.projectedTileCorners(this.x, this.y);
148
+ const parentBounds = cornersToBounds(parentCorners);
152
149
  // Find overlapping child index range
153
- const { minCol, maxCol, minRow, maxRow } = getOverlappingChildRange(parentBounds, childMatrix);
150
+ const { minCol, maxCol, minRow, maxRow } = childLevel.crsBoundsToTileRange(...parentBounds);
154
151
  const children = [];
155
- const { metadata, projectTo3857, projectTo4326 } = this;
152
+ const { descriptor } = this;
156
153
  for (let y = minRow; y <= maxRow; y++) {
157
154
  for (let x = minCol; x <= maxCol; x++) {
158
- children.push(new RasterTileNode(x, y, childZ, {
159
- metadata,
160
- projectTo3857,
161
- projectTo4326,
162
- }));
155
+ children.push(new RasterTileNode(x, y, childZ, { descriptor }));
163
156
  }
164
157
  }
165
158
  this._children = children.length > 0 ? children : null;
@@ -170,8 +163,8 @@ export class RasterTileNode {
170
163
  * Recursively traverse the tile pyramid to determine if this tile (or its
171
164
  * descendants) should be rendered.
172
165
  *
173
- * I.e. Given this tile node, should I render this tile, or should I recurse
174
- * into its children?”
166
+ * I.e. "Given this tile node, should I render this tile, or should I recurse
167
+ * into its children?"
175
168
  *
176
169
  * The algorithm performs:
177
170
  * 1. Visibility culling - reject tiles outside the view frustum
@@ -188,7 +181,7 @@ export class RasterTileNode {
188
181
  // Reset state
189
182
  this.childVisible = false;
190
183
  this.selected = false;
191
- const { viewport, cullingVolume, elevationBounds, minZ, maxZ = this.metadata.tileMatrices.length - 1, project, bounds, } = params;
184
+ const { viewport, cullingVolume, elevationBounds, minZ, maxZ = this.descriptor.levels.length - 1, project, bounds, } = params;
192
185
  // Get bounding volume for this tile
193
186
  const { boundingVolume, commonSpaceBounds } = this.getBoundingVolume(elevationBounds, project);
194
187
  // Step 1: Bounds checking
@@ -206,29 +199,14 @@ export class RasterTileNode {
206
199
  const children = this.children;
207
200
  // LOD (Level of Detail) selection (only if allowed at this level)
208
201
  // Only select this tile if no child is visible (prevents overlapping tiles)
209
- // When pitch is low, force selection at maxZ.”
202
+ // "When pitch is low, force selection at maxZ."
210
203
  if (!this.childVisible && this.z >= minZ) {
211
204
  const metersPerScreenPixel = getMetersPerPixelAtBoundingVolume(boundingVolume, viewport.zoom);
212
- // console.log("metersPerScreenPixel", metersPerScreenPixel);
213
- const tileMetersPerPixel = this.tileMatrix.scaleDenominator * SCREEN_PIXEL_SIZE;
214
- // console.log("tileMetersPerPixel", tileMetersPerPixel);
215
- // const screenScaleDenominator = metersPerScreenPixel / SCREEN_PIXEL_SIZE;
216
- // console.log("screenScaleDenominator", screenScaleDenominator);
217
- // TODO: in the future we could try adding a bias
218
- // const LOD_BIAS = 0.75;
219
- // this.tileMatrix.scaleDenominator <= screenScaleDenominator * LOD_BIAS
220
- // console.log(
221
- // "this.tileMatrix.scaleDenominator",
222
- // this.tileMatrix.scaleDenominator,
223
- // );
224
- // console.log(
225
- // "tileMetersPerPixel <= metersPerScreenPixel",
226
- // tileMetersPerPixel <= metersPerScreenPixel,
227
- // );
205
+ const tileMetersPerPixel = this.level.metersPerPixel;
228
206
  if (tileMetersPerPixel <= metersPerScreenPixel ||
229
207
  this.z >= maxZ ||
230
208
  (children === null && this.z >= minZ)) {
231
- // Select this tile when its scale is at least as detailed as the screen.”
209
+ // "Select this tile when its scale is at least as detailed as the screen."
232
210
  this.selected = true;
233
211
  return true;
234
212
  }
@@ -255,7 +233,7 @@ export class RasterTileNode {
255
233
  * Recursively traverses the entire tree and gathers tiles where selected=true.
256
234
  *
257
235
  * @param result - Accumulator array for selected tiles
258
- * @returns Array of selected OSMNode tiles
236
+ * @returns Array of selected RasterTileNode tiles
259
237
  */
260
238
  getSelected(result = []) {
261
239
  if (this.selected) {
@@ -289,6 +267,12 @@ export class RasterTileNode {
289
267
  * tiling is already in EPSG:3857.
290
268
  */
291
269
  getBoundingVolume(zRange, project) {
270
+ const cached = this._boundingVolume;
271
+ if (cached &&
272
+ cached.zRange[0] === zRange[0] &&
273
+ cached.zRange[1] === zRange[1]) {
274
+ return cached.result;
275
+ }
292
276
  // Case 1: Globe view - need to construct an oriented bounding box from
293
277
  // reprojected sample points, but also using the `project` param
294
278
  if (project) {
@@ -303,7 +287,9 @@ export class RasterTileNode {
303
287
  // corners.
304
288
  // Case 4: Generic case - sample reference points and reproject to
305
289
  // Web Mercator, then convert to deck.gl common space
306
- return this._getGenericBoundingVolume(zRange);
290
+ const result = this._getGenericBoundingVolume(zRange);
291
+ this._boundingVolume = { zRange, result };
292
+ return result;
307
293
  }
308
294
  /**
309
295
  * Generic case - sample reference points and reproject to Web Mercator, then
@@ -311,13 +297,9 @@ export class RasterTileNode {
311
297
  *
312
298
  */
313
299
  _getGenericBoundingVolume(zRange) {
314
- const tileMatrix = this.tileMatrix;
315
300
  const [minZ, maxZ] = zRange;
316
- const tileCrsBounds = computeProjectedTileBounds(tileMatrix, {
317
- x: this.x,
318
- y: this.y,
319
- });
320
- const refPointsEPSG3857 = sampleReferencePointsInEPSG3857(REF_POINTS_9, tileCrsBounds, this.projectTo3857, this.projectTo4326);
301
+ const tileCorners = this.level.projectedTileCorners(this.x, this.y);
302
+ const refPointsEPSG3857 = sampleReferencePointsInEPSG3857(REF_POINTS_9, tileCorners, this.descriptor.projectTo3857, this.descriptor.projectTo4326);
321
303
  const commonSpacePositions = refPointsEPSG3857.map((xy) => rescaleEPSG3857ToCommonSpace(xy));
322
304
  const refPointPositions = [];
323
305
  for (const p of commonSpacePositions) {
@@ -350,24 +332,6 @@ export class RasterTileNode {
350
332
  };
351
333
  }
352
334
  }
353
- /**
354
- * Compute the projected tile bounds in the tile matrix's CRS.
355
- *
356
- * Because it's a linear transformation from the tile index to projected bounds,
357
- * we don't need to sample this for each of the reference points. We only need
358
- * the corners.
359
- *
360
- * @return The bounding box as [minX, minY, maxX, maxY] in projected CRS.
361
- */
362
- function computeProjectedTileBounds(tileMatrix, { x, y, }) {
363
- const bounds = xy_bounds(tileMatrix, { x, y });
364
- return [
365
- bounds.lowerLeft[0],
366
- bounds.lowerLeft[1],
367
- bounds.upperRight[0],
368
- bounds.upperRight[1],
369
- ];
370
- }
371
335
  /**
372
336
  * Wrap a forward projection to EPSG:3857 so that it never returns NaN.
373
337
  *
@@ -403,22 +367,25 @@ function makeClampedForwardTo3857(projectTo3857, projectTo4326) {
403
367
  };
404
368
  }
405
369
  /**
406
- * Sample the selected reference points in EPSG:3857
370
+ * Sample the selected reference points in EPSG:3857.
371
+ *
372
+ * Reference points are given as `[relX, relY]` fractions in `[0, 1]` and are
373
+ * bilinearly interpolated across the tile's four CRS corners. For axis-aligned
374
+ * tiles this is equivalent to the old AABB lerp; for rotated tiles it correctly
375
+ * samples the actual quadrilateral rather than its bounding box.
407
376
  *
408
- * Note that EPSG:3857 is **not** the same as deck.gl's common space! deck.gl's
409
- * common space is the size of `TILE_SIZE` (512) units, while EPSG:3857 uses
410
- * meters.
377
+ * Note that EPSG:3857 is **not** the same as deck.gl's common space deck.gl's
378
+ * common space is 512 units wide, while EPSG:3857 uses meters.
411
379
  *
412
- * @param refPoints selected reference points. Each coordinate should be in [0-1]
413
- * @param tileBounds the bounds of the tile in **tile CRS** [minX, minY, maxX, maxY]
380
+ * @param refPoints Reference points as `[relX, relY]` fractions in `[0, 1]`.
381
+ * @param tileCorners The four CRS corners of the tile.
414
382
  */
415
- function sampleReferencePointsInEPSG3857(refPoints, tileBounds, projectTo3857, projectTo4326) {
416
- const [minX, minY, maxX, maxY] = tileBounds;
383
+ function sampleReferencePointsInEPSG3857(refPoints, tileCorners, projectTo3857, projectTo4326) {
384
+ const { topLeft, topRight, bottomLeft, bottomRight } = tileCorners;
417
385
  const clampedProjectTo3857 = makeClampedForwardTo3857(projectTo3857, projectTo4326);
418
386
  const refPointPositions = [];
419
387
  for (const [relX, relY] of refPoints) {
420
- const geoX = minX + relX * (maxX - minX);
421
- const geoY = minY + relY * (maxY - minY);
388
+ const [geoX, geoY] = bilerpPoint(topLeft, topRight, bottomLeft, bottomRight, relX, relY);
422
389
  refPointPositions.push(clampedProjectTo3857(geoX, geoY));
423
390
  }
424
391
  return refPointPositions;
@@ -428,10 +395,6 @@ function sampleReferencePointsInEPSG3857(refPoints, tileBounds, projectTo3857, p
428
395
  *
429
396
  * Similar to the upstream code here:
430
397
  * https://github.com/visgl/deck.gl/blob/b0134f025148b52b91320d16768ab5d14a745328/modules/geo-layers/src/tileset-2d/tile-2d-traversal.ts#L172-L177
431
- *
432
- * @param {number[]} xy [xy description]
433
- *
434
- * @return {number} [return description]
435
398
  */
436
399
  function rescaleEPSG3857ToCommonSpace([x, y]) {
437
400
  // Clamp Y to Web Mercator bounds
@@ -442,63 +405,14 @@ function rescaleEPSG3857ToCommonSpace([x, y]) {
442
405
  ];
443
406
  }
444
407
  /**
445
- * Compute the range of tile indices in a child TileMatrix that spatially
446
- * overlap a parent tile.
447
- *
448
- * TileMatrixSets are not guaranteed to form a strict quadtree: successive
449
- * TileMatrix levels may differ by non-integer refinement ratios and may not
450
- * align perfectly in tile space. As a result, parent/child relationships
451
- * cannot be inferred from zoom level or resolution alone.
452
- *
453
- * This function determines parent→child relationships by:
454
- * 1. Treating each TileMatrix as an independent, axis-aligned grid in CRS space
455
- * 2. Mapping the parent tile's CRS bounding box into the child grid
456
- * 3. Returning the inclusive range of child tile indices whose spatial extent
457
- * intersects the parent tile
408
+ * Get tile indices visible in viewport.
458
409
  *
459
- * The returned indices are clamped to the valid extents of the child matrix
460
- * (`[0, matrixWidth)` and `[0, matrixHeight)`).
410
+ * Uses frustum culling driven by a {@link TilesetDescriptor}, which abstracts
411
+ * over OGC TileMatrixSet grids and Zarr multiscale pyramids.
461
412
  *
462
- * Assumptions:
463
- * - The TileMatrix grid is axis-aligned in CRS space
464
- * - `cornerOfOrigin` is `"topLeft"`
465
- * - Tiles are rectangular and uniformly sized within a TileMatrix
466
- *
467
- * @param parentBounds Bounding box of the parent tile in CRS coordinates
468
- * as `[minX, minY, maxX, maxY]`
469
- * @param childMatrix The TileMatrix definition for the child zoom level
470
- *
471
- * @returns An object containing inclusive index ranges:
472
- * `{ minCol, maxCol, minRow, maxRow }`, identifying all child tiles
473
- * that spatially overlap the parent tile
413
+ * Overview levels follow the descriptor ordering: index 0 = coarsest, higher = finer.
474
414
  */
475
- function getOverlappingChildRange(parentBounds, childMatrix) {
476
- const [pMinX, pMinY, pMaxX, pMaxY] = parentBounds;
477
- const { tileWidth, tileHeight, cellSize, matrixWidth, matrixHeight, pointOfOrigin, } = childMatrix;
478
- const childTileWidthCRS = tileWidth * cellSize;
479
- const childTileHeightCRS = tileHeight * cellSize;
480
- // Note: we assume top left origin
481
- const originX = pointOfOrigin[0];
482
- const originY = pointOfOrigin[1];
483
- // Convert CRS bounds → tile indices
484
- let minCol = Math.floor((pMinX - originX) / childTileWidthCRS);
485
- let maxCol = Math.floor((pMaxX - originX) / childTileWidthCRS);
486
- let minRow = Math.floor((originY - pMaxY) / childTileHeightCRS);
487
- let maxRow = Math.floor((originY - pMinY) / childTileHeightCRS);
488
- // Clamp to matrix bounds
489
- minCol = Math.max(0, Math.min(matrixWidth - 1, minCol));
490
- maxCol = Math.max(0, Math.min(matrixWidth - 1, maxCol));
491
- minRow = Math.max(0, Math.min(matrixHeight - 1, minRow));
492
- maxRow = Math.max(0, Math.min(matrixHeight - 1, maxRow));
493
- return { minCol, maxCol, minRow, maxRow };
494
- }
495
- /**
496
- * Get tile indices visible in viewport
497
- * Uses frustum culling similar to OSM implementation
498
- *
499
- * Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
500
- */
501
- export function getTileIndices(metadata, opts) {
415
+ export function getTileIndices(descriptor, opts) {
502
416
  const { viewport, maxZ, zRange, wgs84Bounds } = opts;
503
417
  // Only define `project` function for Globe viewports, same as upstream
504
418
  const project = viewport instanceof _GlobeViewport && viewport.resolution
@@ -537,9 +451,7 @@ export function getTileIndices(metadata, opts) {
537
451
  // In our case we want LOD to be evaluated at **all** levels, so we set the
538
452
  // minZ to 0
539
453
  const minZ = 0;
540
- const { lowerLeft, upperRight } = wgs84Bounds;
541
- const [minLng, minLat] = lowerLeft;
542
- const [maxLng, maxLat] = upperRight;
454
+ const [minLng, minLat, maxLng, maxLat] = wgs84Bounds;
543
455
  const bottomLeft = lngLatToWorld([minLng, minLat]);
544
456
  const topRight = lngLatToWorld([maxLng, maxLat]);
545
457
  const bounds = [
@@ -548,19 +460,15 @@ export function getTileIndices(metadata, opts) {
548
460
  topRight[0],
549
461
  topRight[1],
550
462
  ];
551
- // Start from coarsest overview
552
- const rootMatrix = metadata.tileMatrices[0];
553
- // Create root tiles at coarsest level
463
+ // Start from coarsest level
464
+ const rootLevel = descriptor.levels[0];
465
+ // Create root tiles at coarsest level.
554
466
  // In contrary to OSM tiling, we might have more than one tile at the
555
- // coarsest level (z=0)
467
+ // coarsest level (z=0).
556
468
  const roots = [];
557
- for (let y = 0; y < rootMatrix.matrixHeight; y++) {
558
- for (let x = 0; x < rootMatrix.matrixWidth; x++) {
559
- roots.push(new RasterTileNode(x, y, 0, {
560
- metadata,
561
- projectTo3857: opts.projectTo3857,
562
- projectTo4326: opts.projectTo4326,
563
- }));
469
+ for (let y = 0; y < rootLevel.matrixHeight; y++) {
470
+ for (let x = 0; x < rootLevel.matrixWidth; x++) {
471
+ roots.push(new RasterTileNode(x, y, 0, { descriptor }));
564
472
  }
565
473
  }
566
474
  // Traverse and update visibility
@@ -602,10 +510,58 @@ function getMetersPerPixelAtBoundingVolume(boundingVolume, zoom) {
602
510
  return getMetersPerPixel(lat, zoom);
603
511
  }
604
512
  /**
605
- * Exports only for use in testing
513
+ * Compute the axis-aligned bounding box of a rotated tile rectangle.
514
+ */
515
+ function cornersToBounds({ topLeft, topRight, bottomLeft, bottomRight, }) {
516
+ const xs = [topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]];
517
+ const ys = [topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]];
518
+ return [Math.min(...xs), Math.min(...ys), Math.max(...xs), Math.max(...ys)];
519
+ }
520
+ /**
521
+ * Bilinearly interpolate a 2D point over a unit square.
522
+ *
523
+ * Given four corner points of a quadrilateral, this evaluates the bilinear
524
+ * interpolation at normalized coordinates `(x, y)` ∈ [0, 1]². The mapping is:
525
+ *
526
+ * p(x, y) =
527
+ * p00 * (1 - x) * (1 - y) +
528
+ * p10 * x * (1 - y) +
529
+ * p01 * (1 - x) * y +
530
+ * p11 * x * y
531
+ *
532
+ * where:
533
+ * - `p00` corresponds to (x=0, y=0) (top-left)
534
+ * - `p10` corresponds to (x=1, y=0) (top-right)
535
+ * - `p01` corresponds to (x=0, y=1) (bottom-left)
536
+ * - `p11` corresponds to (x=1, y=1) (bottom-right)
537
+ *
538
+ * This performs interpolation in Euclidean space (component-wise on x/y),
539
+ * producing a bilinear mapping from the unit square to the quadrilateral
540
+ * defined by the four input points.
541
+ *
542
+ * @param p00 - Point at (0, 0), typically top-left.
543
+ * @param p10 - Point at (1, 0), typically top-right.
544
+ * @param p01 - Point at (0, 1), typically bottom-left.
545
+ * @param p11 - Point at (1, 1), typically bottom-right.
546
+ * @param x - Normalized horizontal coordinate in [0, 1].
547
+ * @param y - Normalized vertical coordinate in [0, 1].
548
+ * @returns Interpolated 2D point `[x, y]`.
549
+ *
550
+ * @remarks
551
+ * - Reduces to linear interpolation along edges when `x = 0/1` or `y = 0/1`.
552
+ * - Produces an affine mapping only if the four points form a parallelogram;
553
+ * otherwise the interior mapping is bilinear (not affine).
554
+ * - No CRS or geodesic behavior is implied; inputs are treated as Cartesian
555
+ * coordinates.
606
556
  */
607
- export const __TEST_EXPORTS = {
608
- computeProjectedTileBounds,
609
- RasterTileNode,
610
- };
557
+ function bilerpPoint(p00, p10, p01, p11, x, y) {
558
+ const w00 = (1 - x) * (1 - y);
559
+ const w10 = x * (1 - y);
560
+ const w01 = (1 - x) * y;
561
+ const w11 = x * y;
562
+ return [
563
+ p00[0] * w00 + p10[0] * w10 + p01[0] * w01 + p11[0] * w11,
564
+ p00[1] * w00 + p10[1] * w10 + p01[1] * w01 + p11[1] * w11,
565
+ ];
566
+ }
611
567
  //# sourceMappingURL=raster-tile-traversal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tile-traversal.js","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-tile-traversal.js","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * TileMatrixSetTileset - Improved Implementation with Frustum Culling
2
+ * RasterTileset2D - Generic tile traversal over a tile pyramid with Frustum
3
+ * Culling
3
4
  *
4
5
  * This version properly implements frustum culling and bounding volume calculations
5
6
  * following the pattern from deck.gl's OSM tile indexing.
@@ -7,9 +8,9 @@
7
8
  import type { Viewport } from "@deck.gl/core";
8
9
  import type { GeoBoundingBox, _Tileset2DProps as Tileset2DProps } from "@deck.gl/geo-layers";
9
10
  import { _Tileset2D as Tileset2D } from "@deck.gl/geo-layers";
10
- import type { TileMatrix, TileMatrixSet } from "@developmentseed/morecantile";
11
11
  import type { Matrix4 } from "@math.gl/core";
12
- import type { Point, ProjectedBoundingBox, ProjectionFunction, TileIndex, ZRange } from "./types";
12
+ import type { TilesetDescriptor } from "./tileset-interface";
13
+ import type { Corners, ProjectedBoundingBox, ProjectionFunction, TileIndex, ZRange } from "./types";
13
14
  /** Type returned by `getTileMetadata` */
14
15
  export type TileMetadata = {
15
16
  /**
@@ -27,28 +28,15 @@ export type TileMetadata = {
27
28
  * This preserves rotation/skew information that would be lost in the
28
29
  * axis-aligned bbox.
29
30
  */
30
- projectedCorners: {
31
- topLeft: Point;
32
- topRight: Point;
33
- bottomLeft: Point;
34
- bottomRight: Point;
35
- };
31
+ projectedCorners: Corners;
36
32
  /**
37
33
  * Tile width in pixels.
38
- *
39
- * Note this may differ between levels in some TileMatrixSets.
40
34
  */
41
35
  tileWidth: number;
42
36
  /**
43
37
  * Tile height in pixels.
44
- *
45
- * Note this may differ between levels in some TileMatrixSets.
46
38
  */
47
39
  tileHeight: number;
48
- /**
49
- * A reference to the underlying TileMatrix.
50
- */
51
- tileMatrix: TileMatrix;
52
40
  };
53
41
  /**
54
42
  * A generic tileset implementation organized according to the OGC
@@ -57,14 +45,12 @@ export type TileMetadata = {
57
45
  *
58
46
  * Handles tile lifecycle, caching, and viewport-based loading.
59
47
  */
60
- export declare class TileMatrixSetTileset extends Tileset2D {
61
- private tms;
48
+ export declare class RasterTileset2D extends Tileset2D {
49
+ private descriptor;
62
50
  private wgs84Bounds;
63
- private projectTo3857;
64
51
  private projectTo4326;
65
- constructor(opts: Tileset2DProps, tms: TileMatrixSet, { projectTo4326, projectTo3857, }: {
52
+ constructor(opts: Tileset2DProps, descriptor: TilesetDescriptor, { projectTo4326, }: {
66
53
  projectTo4326: ProjectionFunction;
67
- projectTo3857: ProjectionFunction;
68
54
  });
69
55
  /**
70
56
  * Get tile indices visible in viewport
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tileset-2d.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,cAAc,EACd,eAAe,IAAI,cAAc,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACd,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAGV,KAAK,EACL,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,oBAAoB,CAAC;IAEpC;;;;;;OAMG;IACH,gBAAgB,EAAE;QAChB,OAAO,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;KACpB,CAAC;IAEF;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAqB;gBAGxC,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,aAAa,EAClB,EACE,aAAa,EACb,aAAa,GACd,EAAE;QACD,aAAa,EAAE,kBAAkB,CAAC;QAClC,aAAa,EAAE,kBAAkB,CAAC;KACnC;IAkBH;;;;;OAKG;IACM,cAAc,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,SAAS,EAAE;IAoBN,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAInC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAgC3C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIrC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY;CA2DzD"}
1
+ {"version":3,"file":"raster-tileset-2d.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tileset-2d.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,cAAc,EACd,eAAe,IAAI,cAAc,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAEV,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,oBAAoB,CAAC;IAEpC;;;;;;OAMG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAqB;gBAGxC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,iBAAiB,EAC7B,EACE,aAAa,GACd,EAAE;QACD,aAAa,EAAE,kBAAkB,CAAC;KACnC;IAYH;;;;;OAKG;IACM,cAAc,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,SAAS,EAAE;IAkBN,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAInC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAiC3C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIrC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY;CAmDzD"}