@developmentseed/deck.gl-raster 0.6.1 → 0.7.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 (64) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/layer-utils.d.ts +2 -2
  6. package/dist/layer-utils.d.ts.map +1 -1
  7. package/dist/layer-utils.js.map +1 -1
  8. package/dist/mesh-layer/mesh-layer.d.ts +4 -1
  9. package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
  10. package/dist/mesh-layer/mesh-layer.js +28 -0
  11. package/dist/mesh-layer/mesh-layer.js.map +1 -1
  12. package/dist/multi-raster-tileset/index.d.ts +2 -2
  13. package/dist/multi-raster-tileset/index.d.ts.map +1 -1
  14. package/dist/multi-raster-tileset/index.js +1 -1
  15. package/dist/multi-raster-tileset/index.js.map +1 -1
  16. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts +21 -21
  17. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts.map +1 -1
  18. package/dist/multi-raster-tileset/multi-tileset-descriptor.js +11 -11
  19. package/dist/multi-raster-tileset/multi-tileset-descriptor.js.map +1 -1
  20. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts +4 -4
  21. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts.map +1 -1
  22. package/dist/multi-raster-tileset/secondary-tile-resolver.js +2 -2
  23. package/dist/multi-raster-tileset/secondary-tile-resolver.js.map +1 -1
  24. package/dist/raster-layer.d.ts +21 -3
  25. package/dist/raster-layer.d.ts.map +1 -1
  26. package/dist/raster-layer.js +6 -17
  27. package/dist/raster-layer.js.map +1 -1
  28. package/dist/raster-tile-layer/raster-tile-layer.d.ts +23 -7
  29. package/dist/raster-tile-layer/raster-tile-layer.d.ts.map +1 -1
  30. package/dist/raster-tile-layer/raster-tile-layer.js +61 -17
  31. package/dist/raster-tile-layer/raster-tile-layer.js.map +1 -1
  32. package/dist/raster-tileset/affine-tileset-level.d.ts +7 -7
  33. package/dist/raster-tileset/affine-tileset-level.d.ts.map +1 -1
  34. package/dist/raster-tileset/affine-tileset-level.js +2 -2
  35. package/dist/raster-tileset/affine-tileset.d.ts +3 -3
  36. package/dist/raster-tileset/affine-tileset.d.ts.map +1 -1
  37. package/dist/raster-tileset/affine-tileset.js +1 -1
  38. package/dist/raster-tileset/bounding-volume-cache.d.ts +62 -0
  39. package/dist/raster-tileset/bounding-volume-cache.d.ts.map +1 -0
  40. package/dist/raster-tileset/bounding-volume-cache.js +70 -0
  41. package/dist/raster-tileset/bounding-volume-cache.js.map +1 -0
  42. package/dist/raster-tileset/index.d.ts +3 -2
  43. package/dist/raster-tileset/index.d.ts.map +1 -1
  44. package/dist/raster-tileset/index.js +1 -0
  45. package/dist/raster-tileset/index.js.map +1 -1
  46. package/dist/raster-tileset/raster-tile-traversal.d.ts +55 -21
  47. package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
  48. package/dist/raster-tileset/raster-tile-traversal.js +46 -29
  49. package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
  50. package/dist/raster-tileset/raster-tileset-2d.d.ts +61 -6
  51. package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
  52. package/dist/raster-tileset/raster-tileset-2d.js +39 -2
  53. package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
  54. package/dist/raster-tileset/sort-by-distance.d.ts +41 -0
  55. package/dist/raster-tileset/sort-by-distance.d.ts.map +1 -0
  56. package/dist/raster-tileset/sort-by-distance.js +72 -0
  57. package/dist/raster-tileset/sort-by-distance.js.map +1 -0
  58. package/dist/raster-tileset/tile-matrix-set.d.ts +4 -4
  59. package/dist/raster-tileset/tile-matrix-set.d.ts.map +1 -1
  60. package/dist/raster-tileset/tile-matrix-set.js +1 -1
  61. package/dist/raster-tileset/tile-matrix-set.js.map +1 -1
  62. package/dist/raster-tileset/tileset-interface.d.ts +5 -5
  63. package/dist/raster-tileset/tileset-interface.d.ts.map +1 -1
  64. package/package.json +6 -6
@@ -0,0 +1,41 @@
1
+ import type { Viewport } from "@deck.gl/core";
2
+ /**
3
+ * Sort `items` in place by ascending squared Euclidean distance of each
4
+ * item's center from `reference`. Returns the same array reference.
5
+ *
6
+ * `getCenter` is called exactly once per item (O(n) pre-pass) — never from
7
+ * inside the sort comparator. This keeps the per-viewport cost bounded:
8
+ * one center computation per tile plus one sort of precomputed numbers.
9
+ *
10
+ * Equal-distance items retain their original relative order (stable sort
11
+ * per ES2019 `Array.prototype.sort` spec).
12
+ *
13
+ * For `items.length < 2` this is a no-op and `getCenter` is not called.
14
+ *
15
+ * Caller-side short-circuits (e.g. `n <= maxRequests`) should be applied
16
+ * before invoking this helper when they would skip useful work entirely.
17
+ */
18
+ export declare function sortByDistanceFromPoint<T>(items: T[], opts: {
19
+ getCenter: (item: T) => readonly [number, number];
20
+ reference: readonly [number, number];
21
+ }): T[];
22
+ /**
23
+ * Sort `items` in place by ascending distance of each item's center from
24
+ * the viewport's bounds-midpoint, so loads initiate center-out. Returns the
25
+ * same array reference.
26
+ *
27
+ * The reference point is the midpoint of `viewport.getBounds()`, which is
28
+ * always WGS84 `[minLon, minLat, maxLon, maxLat]` regardless of viewport
29
+ * type (Mercator, Globe, etc.). `getCenter` must return each item's center
30
+ * in the same WGS84 space so the comparison is meaningful — callers
31
+ * working in a projected CRS should run their tile/source centers through
32
+ * the descriptor's `projectTo4326` before returning.
33
+ *
34
+ * `getCenter` is called exactly once per item; see
35
+ * {@link sortByDistanceFromPoint} for the underlying perf contract and the
36
+ * `items.length < 2` short-circuit. Caller-side short-circuits such as
37
+ * `length <= maxRequests` should still be applied before invoking this
38
+ * helper when they would skip useful work entirely.
39
+ */
40
+ export declare function sortItemsByDistanceFromViewportCenter<T>(items: T[], viewport: Viewport, getCenter: (item: T) => readonly [number, number]): T[];
41
+ //# sourceMappingURL=sort-by-distance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort-by-distance.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/sort-by-distance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE;IACJ,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,GACA,CAAC,EAAE,CA8BL;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CAAC,CAAC,EACrD,KAAK,EAAE,CAAC,EAAE,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAChD,CAAC,EAAE,CAUL"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Sort `items` in place by ascending squared Euclidean distance of each
3
+ * item's center from `reference`. Returns the same array reference.
4
+ *
5
+ * `getCenter` is called exactly once per item (O(n) pre-pass) — never from
6
+ * inside the sort comparator. This keeps the per-viewport cost bounded:
7
+ * one center computation per tile plus one sort of precomputed numbers.
8
+ *
9
+ * Equal-distance items retain their original relative order (stable sort
10
+ * per ES2019 `Array.prototype.sort` spec).
11
+ *
12
+ * For `items.length < 2` this is a no-op and `getCenter` is not called.
13
+ *
14
+ * Caller-side short-circuits (e.g. `n <= maxRequests`) should be applied
15
+ * before invoking this helper when they would skip useful work entirely.
16
+ */
17
+ export function sortByDistanceFromPoint(items, opts) {
18
+ const n = items.length;
19
+ if (n < 2) {
20
+ return items;
21
+ }
22
+ const { getCenter, reference } = opts;
23
+ const rx = reference[0];
24
+ const ry = reference[1];
25
+ const distances = new Float64Array(n);
26
+ for (let i = 0; i < n; i++) {
27
+ const center = getCenter(items[i]);
28
+ const dx = center[0] - rx;
29
+ const dy = center[1] - ry;
30
+ distances[i] = dx * dx + dy * dy;
31
+ }
32
+ const permutation = new Uint32Array(n);
33
+ for (let i = 0; i < n; i++) {
34
+ permutation[i] = i;
35
+ }
36
+ permutation.sort((a, b) => distances[a] - distances[b]);
37
+ const scratch = items.slice();
38
+ for (let i = 0; i < n; i++) {
39
+ items[i] = scratch[permutation[i]];
40
+ }
41
+ return items;
42
+ }
43
+ /**
44
+ * Sort `items` in place by ascending distance of each item's center from
45
+ * the viewport's bounds-midpoint, so loads initiate center-out. Returns the
46
+ * same array reference.
47
+ *
48
+ * The reference point is the midpoint of `viewport.getBounds()`, which is
49
+ * always WGS84 `[minLon, minLat, maxLon, maxLat]` regardless of viewport
50
+ * type (Mercator, Globe, etc.). `getCenter` must return each item's center
51
+ * in the same WGS84 space so the comparison is meaningful — callers
52
+ * working in a projected CRS should run their tile/source centers through
53
+ * the descriptor's `projectTo4326` before returning.
54
+ *
55
+ * `getCenter` is called exactly once per item; see
56
+ * {@link sortByDistanceFromPoint} for the underlying perf contract and the
57
+ * `items.length < 2` short-circuit. Caller-side short-circuits such as
58
+ * `length <= maxRequests` should still be applied before invoking this
59
+ * helper when they would skip useful work entirely.
60
+ */
61
+ export function sortItemsByDistanceFromViewportCenter(items, viewport, getCenter) {
62
+ const [minLon, minLat, maxLon, maxLat] = viewport.getBounds();
63
+ const viewportCenter = [
64
+ (minLon + maxLon) / 2,
65
+ (minLat + maxLat) / 2,
66
+ ];
67
+ return sortByDistanceFromPoint(items, {
68
+ reference: viewportCenter,
69
+ getCenter,
70
+ });
71
+ }
72
+ //# sourceMappingURL=sort-by-distance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort-by-distance.js","sourceRoot":"","sources":["../../src/raster-tileset/sort-by-distance.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAU,EACV,IAGC;IAED,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAExB,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1B,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAE,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAE,CAAE,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qCAAqC,CACnD,KAAU,EACV,QAAkB,EAClB,SAAiD;IAEjD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC9D,MAAM,cAAc,GAAG;QACrB,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;QACrB,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;KACb,CAAC;IACX,OAAO,uBAAuB,CAAC,KAAK,EAAE;QACpC,SAAS,EAAE,cAAc;QACzB,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import type { TileMatrixSet } from "@developmentseed/morecantile";
2
- import type { TilesetDescriptor, TilesetLevel } from "./tileset-interface.js";
2
+ import type { RasterTilesetDescriptor, RasterTilesetLevel } from "./tileset-interface.js";
3
3
  import type { Bounds, ProjectionFunction } from "./types.js";
4
4
  /**
5
- * An adapter interface to use a TileMatrixSet as a TilesetDescriptor for raster
5
+ * An adapter interface to use a TileMatrixSet as a RasterTilesetDescriptor for raster
6
6
  * tile traversal.
7
7
  */
8
- export declare class TileMatrixSetAdaptor implements TilesetDescriptor {
8
+ export declare class TileMatrixSetAdaptor implements RasterTilesetDescriptor {
9
9
  tms: TileMatrixSet;
10
10
  private _levels;
11
11
  projectTo3857: ProjectionFunction;
@@ -18,7 +18,7 @@ export declare class TileMatrixSetAdaptor implements TilesetDescriptor {
18
18
  projectTo4326: ProjectionFunction;
19
19
  projectFrom4326: ProjectionFunction;
20
20
  });
21
- get levels(): TilesetLevel[];
21
+ get levels(): RasterTilesetLevel[];
22
22
  get projectedBounds(): Bounds;
23
23
  }
24
24
  //# sourceMappingURL=tile-matrix-set.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile-matrix-set.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/tile-matrix-set.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAW,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA8ItE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,CAAC,OAAO,CAAsB;IACrC,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,kBAAkB,CAAC;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,kBAAkB,CAAC;gBAGlC,GAAG,EAAE,aAAa,EAClB,EACE,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,GAChB,EAAE;QACD,aAAa,EAAE,kBAAkB,CAAC;QAClC,eAAe,EAAE,kBAAkB,CAAC;QACpC,aAAa,EAAE,kBAAkB,CAAC;QAClC,eAAe,EAAE,kBAAkB,CAAC;KACrC;IAUH,IAAI,MAAM,IAAI,YAAY,EAAE,CAE3B;IAED,IAAI,eAAe,IAAI,MAAM,CAU5B;CACF"}
1
+ {"version":3,"file":"tile-matrix-set.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/tile-matrix-set.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAW,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA8ItE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,uBAAuB;IAClE,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,CAAC,OAAO,CAAsB;IACrC,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,kBAAkB,CAAC;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,kBAAkB,CAAC;gBAGlC,GAAG,EAAE,aAAa,EAClB,EACE,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,GAChB,EAAE;QACD,aAAa,EAAE,kBAAkB,CAAC;QAClC,eAAe,EAAE,kBAAkB,CAAC;QACpC,aAAa,EAAE,kBAAkB,CAAC;QAClC,eAAe,EAAE,kBAAkB,CAAC;KACrC;IAUH,IAAI,MAAM,IAAI,kBAAkB,EAAE,CAEjC;IAED,IAAI,eAAe,IAAI,MAAM,CAU5B;CACF"}
@@ -106,7 +106,7 @@ class TileMatrixAdaptor {
106
106
  }
107
107
  }
108
108
  /**
109
- * An adapter interface to use a TileMatrixSet as a TilesetDescriptor for raster
109
+ * An adapter interface to use a TileMatrixSet as a RasterTilesetDescriptor for raster
110
110
  * tile traversal.
111
111
  */
112
112
  export class TileMatrixSetAdaptor {
@@ -1 +1 @@
1
- {"version":3,"file":"tile-matrix-set.js","sourceRoot":"","sources":["../../src/raster-tileset/tile-matrix-set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile-matrix-set.js","sourceRoot":"","sources":["../../src/raster-tileset/tile-matrix-set.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import type { Bounds, Corners, ProjectionFunction } from "./types.js";
5
5
  * This interface abstracts over both TileMatrixSet levels and Zarr multiscale
6
6
  * levels, enabling a single traversal algorithm to work with both.
7
7
  */
8
- export interface TilesetLevel {
8
+ export interface RasterTilesetLevel {
9
9
  /** Number of tiles across this level (columns). */
10
10
  matrixWidth: number;
11
11
  /** Number of tiles down this level (rows). */
@@ -61,8 +61,8 @@ export interface TilesetLevel {
61
61
  * non-affine transforms (e.g. GCPs) in the future.
62
62
  */
63
63
  tileTransform: (col: number, row: number) => {
64
- forwardTransform: (x: number, y: number) => [number, number];
65
- inverseTransform: (x: number, y: number) => [number, number];
64
+ forwardTransform: ProjectionFunction;
65
+ inverseTransform: ProjectionFunction;
66
66
  };
67
67
  }
68
68
  /**
@@ -71,9 +71,9 @@ export interface TilesetLevel {
71
71
  * Index 0 = coarsest level, higher index = finer detail (same ordering as
72
72
  * TileMatrixSet).
73
73
  */
74
- export interface TilesetDescriptor {
74
+ export interface RasterTilesetDescriptor {
75
75
  /** Ordered levels from coarsest (0) to finest. */
76
- levels: TilesetLevel[];
76
+ levels: RasterTilesetLevel[];
77
77
  /**
78
78
  * Projection function from the source CRS → EPSG:3857.
79
79
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-interface.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/tileset-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;OAUG;IACH,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAE5D;;;;;;;;OAQG;IACH,oBAAoB,EAAE,CACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,KAClB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAExE;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,CACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,KACR;QACH,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7D,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9D,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;;;;OAKG;IACH,aAAa,EAAE,kBAAkB,CAAC;IAElC;;;;;OAKG;IACH,aAAa,EAAE,kBAAkB,CAAC;IAElC;;;;OAIG;IACH,eAAe,EAAE,kBAAkB,CAAC;IAEpC;;;;OAIG;IACH,eAAe,EAAE,kBAAkB,CAAC;IAEpC,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"tileset-interface.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/tileset-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;OAUG;IACH,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAE5D;;;;;;;;OAQG;IACH,oBAAoB,EAAE,CACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,KAClB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAExE;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,CACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,KACR;QACH,gBAAgB,EAAE,kBAAkB,CAAC;QACrC,gBAAgB,EAAE,kBAAkB,CAAC;KACtC,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,aAAa,EAAE,kBAAkB,CAAC;IAElC;;;;;OAKG;IACH,aAAa,EAAE,kBAAkB,CAAC;IAElC;;;;OAIG;IACH,eAAe,EAAE,kBAAkB,CAAC;IAEpC;;;;OAIG;IACH,eAAe,EAAE,kBAAkB,CAAC;IAEpC,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@developmentseed/deck.gl-raster",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Georeferenced image data visualization in deck.gl",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,7 @@
41
41
  "@luma.gl/core": "^9.3.2",
42
42
  "@luma.gl/shadertools": "^9.3.2",
43
43
  "@types/node": "^25.6.0",
44
- "jsdom": "^29.0.2",
44
+ "jsdom": "^29.1.1",
45
45
  "typescript": "^6.0.3",
46
46
  "vitest": "^4.1.5"
47
47
  },
@@ -52,15 +52,15 @@
52
52
  "@deck.gl/mesh-layers": "^9.3.0",
53
53
  "@luma.gl/core": "^9.3.2",
54
54
  "@luma.gl/shadertools": "^9.3.2",
55
- "@developmentseed/morecantile": "^0.6.1"
55
+ "@developmentseed/morecantile": "^0.7.0"
56
56
  },
57
57
  "dependencies": {
58
58
  "@math.gl/core": "^4.1.0",
59
59
  "@math.gl/culling": "^4.1.0",
60
60
  "@math.gl/web-mercator": "^4.1.0",
61
- "@developmentseed/affine": "^0.6.1",
62
- "@developmentseed/proj": "^0.6.1",
63
- "@developmentseed/raster-reproject": "^0.6.1"
61
+ "@developmentseed/affine": "^0.7.0",
62
+ "@developmentseed/proj": "^0.7.0",
63
+ "@developmentseed/raster-reproject": "^0.7.0"
64
64
  },
65
65
  "volta": {
66
66
  "extends": "../../package.json"