@developmentseed/deck.gl-raster 0.1.0 → 0.3.0-beta.3

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 (45) hide show
  1. package/dist/gpu-modules/color/black-is-zero.d.ts +12 -0
  2. package/dist/gpu-modules/color/black-is-zero.d.ts.map +1 -0
  3. package/dist/gpu-modules/color/black-is-zero.js +19 -0
  4. package/dist/gpu-modules/color/black-is-zero.js.map +1 -0
  5. package/dist/gpu-modules/color/cielab.d.ts.map +1 -1
  6. package/dist/gpu-modules/color/cielab.js.map +1 -1
  7. package/dist/gpu-modules/color/cmyk.d.ts.map +1 -1
  8. package/dist/gpu-modules/color/cmyk.js.map +1 -1
  9. package/dist/gpu-modules/color/white-is-zero.d.ts +12 -0
  10. package/dist/gpu-modules/color/white-is-zero.d.ts.map +1 -0
  11. package/dist/gpu-modules/color/white-is-zero.js +19 -0
  12. package/dist/gpu-modules/color/white-is-zero.js.map +1 -0
  13. package/dist/gpu-modules/color/ycbcr.d.ts.map +1 -1
  14. package/dist/gpu-modules/color/ycbcr.js.map +1 -1
  15. package/dist/gpu-modules/rescale-snorm-to-unorm.d.ts +12 -0
  16. package/dist/gpu-modules/rescale-snorm-to-unorm.d.ts.map +1 -0
  17. package/dist/gpu-modules/rescale-snorm-to-unorm.js +19 -0
  18. package/dist/gpu-modules/rescale-snorm-to-unorm.js.map +1 -0
  19. package/dist/gpu-modules/rgb-color.d.ts +1 -0
  20. package/dist/gpu-modules/rgb-color.d.ts.map +1 -0
  21. package/dist/gpu-modules/rgb-color.js +2 -0
  22. package/dist/gpu-modules/rgb-color.js.map +1 -0
  23. package/dist/gpu-modules/ycbcr.d.ts +13 -0
  24. package/dist/gpu-modules/ycbcr.d.ts.map +1 -0
  25. package/dist/gpu-modules/ycbcr.js +31 -0
  26. package/dist/gpu-modules/ycbcr.js.map +1 -0
  27. package/dist/index.d.ts +2 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/raster-tileset/index.d.ts +1 -2
  32. package/dist/raster-tileset/index.d.ts.map +1 -1
  33. package/dist/raster-tileset/index.js +1 -1
  34. package/dist/raster-tileset/index.js.map +1 -1
  35. package/dist/raster-tileset/raster-tile-traversal.d.ts +10 -6
  36. package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
  37. package/dist/raster-tileset/raster-tile-traversal.js +25 -66
  38. package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
  39. package/dist/raster-tileset/raster-tileset-2d.d.ts +15 -8
  40. package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
  41. package/dist/raster-tileset/raster-tileset-2d.js +77 -35
  42. package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
  43. package/dist/raster-tileset/types.d.ts +6 -110
  44. package/dist/raster-tileset/types.d.ts.map +1 -1
  45. package/package.json +14 -12
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
3
+ * to a color.
4
+ */
5
+ export declare const BlackIsZero: {
6
+ readonly name: "black-is-zero";
7
+ readonly inject: {
8
+ readonly "fs:#decl": "\n vec3 black_zero_to_rgb(float value) {\n return vec3(value, value, value);\n }\n";
9
+ readonly "fs:DECKGL_FILTER_COLOR": "\n color.rgb = black_zero_to_rgb(color.r);\n ";
10
+ };
11
+ };
12
+ //# sourceMappingURL=black-is-zero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"black-is-zero.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/black-is-zero.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;CAQS,CAAC"}
@@ -0,0 +1,19 @@
1
+ const shader = /* glsl */ `
2
+ vec3 black_zero_to_rgb(float value) {
3
+ return vec3(value, value, value);
4
+ }
5
+ `;
6
+ /**
7
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
8
+ * to a color.
9
+ */
10
+ export const BlackIsZero = {
11
+ name: "black-is-zero",
12
+ inject: {
13
+ "fs:#decl": shader,
14
+ "fs:DECKGL_FILTER_COLOR": /* glsl */ `
15
+ color.rgb = black_zero_to_rgb(color.r);
16
+ `,
17
+ },
18
+ };
19
+ //# sourceMappingURL=black-is-zero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"black-is-zero.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/black-is-zero.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;CAIzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CAC8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cielab.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/cielab.ts"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;CAQa,CAAC"}
1
+ {"version":3,"file":"cielab.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/cielab.ts"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;CAQS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cielab.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/cielab.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CACkC,CAAC"}
1
+ {"version":3,"file":"cielab.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/cielab.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CAC8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmyk.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/cmyk.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;CAQe,CAAC"}
1
+ {"version":3,"file":"cmyk.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/cmyk.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;CAQW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmyk.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/cmyk.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;CAWzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CACkC,CAAC"}
1
+ {"version":3,"file":"cmyk.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/cmyk.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;CAWzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CAC8B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
3
+ * to a color.
4
+ */
5
+ export declare const WhiteIsZero: {
6
+ readonly name: "white-is-zero";
7
+ readonly inject: {
8
+ readonly "fs:#decl": "\n vec3 white_zero_to_rgb(float value) {\n return vec3(1.0 - value, 1.0 - value, 1.0 - value);\n }\n";
9
+ readonly "fs:DECKGL_FILTER_COLOR": "\n color.rgb = white_zero_to_rgb(color.r);\n ";
10
+ };
11
+ };
12
+ //# sourceMappingURL=white-is-zero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"white-is-zero.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/white-is-zero.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;CAQS,CAAC"}
@@ -0,0 +1,19 @@
1
+ const shader = /* glsl */ `
2
+ vec3 white_zero_to_rgb(float value) {
3
+ return vec3(1.0 - value, 1.0 - value, 1.0 - value);
4
+ }
5
+ `;
6
+ /**
7
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
8
+ * to a color.
9
+ */
10
+ export const WhiteIsZero = {
11
+ name: "white-is-zero",
12
+ inject: {
13
+ "fs:#decl": shader,
14
+ "fs:DECKGL_FILTER_COLOR": /* glsl */ `
15
+ color.rgb = white_zero_to_rgb(color.r);
16
+ `,
17
+ },
18
+ };
19
+ //# sourceMappingURL=white-is-zero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"white-is-zero.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/white-is-zero.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;CAIzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CAC8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ycbcr.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/ycbcr.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;CAQc,CAAC"}
1
+ {"version":3,"file":"ycbcr.d.ts","sourceRoot":"","sources":["../../../src/gpu-modules/color/ycbcr.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;CAQU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ycbcr.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/ycbcr.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;CAazB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CACkC,CAAC"}
1
+ {"version":3,"file":"ycbcr.js","sourceRoot":"","sources":["../../../src/gpu-modules/color/ycbcr.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;CAazB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CAC8B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
3
+ * to a color.
4
+ */
5
+ export declare const RescaleSnormToUnorm: {
6
+ readonly name: "rescale-snorm-to-unorm";
7
+ readonly inject: {
8
+ readonly "fs:#decl": "\n vec4 rescaleSnormToUnorm(vec4 value) {\n return (value + 1.0) / 2.0;\n }\n";
9
+ readonly "fs:DECKGL_FILTER_COLOR": "\n color = rescaleSnormToUnorm(color);\n ";
10
+ };
11
+ };
12
+ //# sourceMappingURL=rescale-snorm-to-unorm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rescale-snorm-to-unorm.d.ts","sourceRoot":"","sources":["../../src/gpu-modules/rescale-snorm-to-unorm.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;CAQC,CAAC"}
@@ -0,0 +1,19 @@
1
+ const shader = /* glsl */ `
2
+ vec4 rescaleSnormToUnorm(vec4 value) {
3
+ return (value + 1.0) / 2.0;
4
+ }
5
+ `;
6
+ /**
7
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
8
+ * to a color.
9
+ */
10
+ export const RescaleSnormToUnorm = {
11
+ name: "rescale-snorm-to-unorm",
12
+ inject: {
13
+ "fs:#decl": shader,
14
+ "fs:DECKGL_FILTER_COLOR": /* glsl */ `
15
+ color = rescaleSnormToUnorm(color);
16
+ `,
17
+ },
18
+ };
19
+ //# sourceMappingURL=rescale-snorm-to-unorm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rescale-snorm-to-unorm.js","sourceRoot":"","sources":["../../src/gpu-modules/rescale-snorm-to-unorm.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;CAIzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;CAC8B,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=rgb-color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb-color.d.ts","sourceRoot":"","sources":["../../src/gpu-modules/rgb-color.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=rgb-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb-color.js","sourceRoot":"","sources":["../../src/gpu-modules/rgb-color.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
3
+ * to a color.
4
+ */
5
+ export declare const YCbCrToRGB: {
6
+ readonly name: "ycbcr-to-rgb";
7
+ readonly inject: {
8
+ readonly "fs:#decl": "\n vec3 ycbcrToRgb(vec3 ycbcr) {\n // ycbcr in [0.0, 1.0]\n float y = ycbcr.r;\n float cb = ycbcr.g - 0.5;\n float cr = ycbcr.b - 0.5;\n\n return vec3(\n y + 1.40200 * cr,\n y - 0.34414 * cb - 0.71414 * cr,\n y + 1.77200 * cb\n );\n }\n";
9
+ readonly "fs:DECKGL_FILTER_COLOR": "\n color.rgb = ycbcrToRgb(color.rgb);\n ";
10
+ };
11
+ readonly getUniforms: () => {};
12
+ };
13
+ //# sourceMappingURL=ycbcr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ycbcr.d.ts","sourceRoot":"","sources":["../../src/gpu-modules/ycbcr.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;CAWc,CAAC"}
@@ -0,0 +1,31 @@
1
+ const shader = /* glsl */ `
2
+ vec3 ycbcrToRgb(vec3 ycbcr) {
3
+ // ycbcr in [0.0, 1.0]
4
+ float y = ycbcr.r;
5
+ float cb = ycbcr.g - 0.5;
6
+ float cr = ycbcr.b - 0.5;
7
+
8
+ return vec3(
9
+ y + 1.40200 * cr,
10
+ y - 0.34414 * cb - 0.71414 * cr,
11
+ y + 1.77200 * cb
12
+ );
13
+ }
14
+ `;
15
+ /**
16
+ * A shader module that injects a unorm texture and uses a sampler2D to assign
17
+ * to a color.
18
+ */
19
+ export const YCbCrToRGB = {
20
+ name: "ycbcr-to-rgb",
21
+ inject: {
22
+ "fs:#decl": shader,
23
+ "fs:DECKGL_FILTER_COLOR": /* glsl */ `
24
+ color.rgb = ycbcrToRgb(color.rgb);
25
+ `,
26
+ },
27
+ getUniforms: () => {
28
+ return {};
29
+ },
30
+ };
31
+ //# sourceMappingURL=ycbcr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ycbcr.js","sourceRoot":"","sources":["../../src/gpu-modules/ycbcr.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;CAazB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,wBAAwB,EAAE,UAAU,CAAC;;KAEpC;KACF;IACD,WAAW,EAAE,GAAG,EAAE;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;CACkC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,11 @@
1
1
  export type { RasterModule } from "./gpu-modules/types.js";
2
2
  export type { RasterLayerProps } from "./raster-layer.js";
3
3
  export { RasterLayer } from "./raster-layer.js";
4
- export { RasterTileset2D } from "./raster-tileset/index.js";
5
- export type { TileMatrix, TileMatrixSet, TileMatrixSetBoundingBox, } from "./raster-tileset/types.js";
4
+ export { TileMatrixSetTileset } from "./raster-tileset/index.js";
6
5
  export declare const __TEST_EXPORTS: {
7
- computeProjectedTileBounds: ({ x, y, transform, tileWidth, tileHeight, }: {
6
+ computeProjectedTileBounds: (tileMatrix: import("@developmentseed/morecantile").TileMatrix, { x, y, }: {
8
7
  x: number;
9
8
  y: number;
10
- transform: [number, number, number, number, number, number];
11
- tileWidth: number;
12
- tileHeight: number;
13
9
  }) => [number, number, number, number];
14
10
  RasterTileNode: typeof import("./raster-tileset/raster-tile-traversal.js").RasterTileNode;
15
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EACV,UAAU,EACV,aAAa,EACb,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAInC,eAAO,MAAM,cAAc;;;;;;;;;CAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,eAAO,MAAM,cAAc;;;;;;CAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { RasterLayer } from "./raster-layer.js";
2
- export { RasterTileset2D } from "./raster-tileset/index.js";
2
+ export { TileMatrixSetTileset } from "./raster-tileset/index.js";
3
3
  import { __TEST_EXPORTS as traversalTestExports } from "./raster-tileset/raster-tile-traversal.js";
4
4
  export const __TEST_EXPORTS = { ...traversalTestExports };
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEnG,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEnG,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC"}
@@ -1,3 +1,2 @@
1
- export { RasterTileset2D } from "./raster-tileset-2d.js";
2
- export type { TileMatrix, TileMatrixSet } from "./types.js";
1
+ export { TileMatrixSetTileset } from "./raster-tileset-2d.js";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { RasterTileset2D } from "./raster-tileset-2d.js";
1
+ export { TileMatrixSetTileset } from "./raster-tileset-2d.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -15,9 +15,10 @@
15
15
  * cover the visible area with appropriate detail.
16
16
  */
17
17
  import type { Viewport } from "@deck.gl/core";
18
+ import type { TileMatrix, TileMatrixSet } from "@developmentseed/morecantile";
18
19
  import type { OrientedBoundingBox } from "@math.gl/culling";
19
20
  import { CullingVolume } from "@math.gl/culling";
20
- import type { Bounds, TileIndex, TileMatrix, TileMatrixSet, ZRange } from "./types.js";
21
+ import type { Bounds, CornerBounds, ProjectionFunction, TileIndex, ZRange } from "./types.js";
21
22
  /**
22
23
  * Raster Tile Node - represents a single tile in the TileMatrixSet structure
23
24
  *
@@ -52,7 +53,11 @@ export declare class RasterTileNode {
52
53
  private selected?;
53
54
  /** A cache of the children of this node. */
54
55
  private _children?;
55
- constructor(x: number, y: number, z: number, metadata: TileMatrixSet);
56
+ private projectTo3857;
57
+ constructor(x: number, y: number, z: number, { metadata, projectTo3857, }: {
58
+ metadata: TileMatrixSet;
59
+ projectTo3857: ProjectionFunction;
60
+ });
56
61
  /** Get overview info for this tile's z level */
57
62
  get tileMatrix(): TileMatrix;
58
63
  /** Get the children of this node.
@@ -136,12 +141,9 @@ export declare class RasterTileNode {
136
141
  *
137
142
  * @return The bounding box as [minX, minY, maxX, maxY] in projected CRS.
138
143
  */
139
- declare function computeProjectedTileBounds({ x, y, transform, tileWidth, tileHeight, }: {
144
+ declare function computeProjectedTileBounds(tileMatrix: TileMatrix, { x, y, }: {
140
145
  x: number;
141
146
  y: number;
142
- transform: [number, number, number, number, number, number];
143
- tileWidth: number;
144
- tileHeight: number;
145
147
  }): [number, number, number, number];
146
148
  /**
147
149
  * Get tile indices visible in viewport
@@ -153,6 +155,8 @@ export declare function getTileIndices(metadata: TileMatrixSet, opts: {
153
155
  viewport: Viewport;
154
156
  maxZ: number;
155
157
  zRange: ZRange | null;
158
+ projectTo3857: ProjectionFunction;
159
+ wgs84Bounds: CornerBounds;
156
160
  }): TileIndex[];
157
161
  /**
158
162
  * Exports only for use in testing
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/raster-tile-traversal.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@
15
15
  * cover the visible area with appropriate detail.
16
16
  */
17
17
  import { _GlobeViewport, assert } from "@deck.gl/core";
18
+ import { xy_bounds } from "@developmentseed/morecantile";
18
19
  import { CullingVolume, makeOrientedBoundingBoxFromPoints, Plane, } from "@math.gl/culling";
19
20
  import { lngLatToWorld, worldToLngLat } from "@math.gl/web-mercator";
20
21
  /**
@@ -108,11 +109,13 @@ export class RasterTileNode {
108
109
  selected;
109
110
  /** A cache of the children of this node. */
110
111
  _children;
111
- constructor(x, y, z, metadata) {
112
+ projectTo3857;
113
+ constructor(x, y, z, { metadata, projectTo3857, }) {
112
114
  this.x = x;
113
115
  this.y = y;
114
116
  this.z = z;
115
117
  this.metadata = metadata;
118
+ this.projectTo3857 = projectTo3857;
116
119
  }
117
120
  /** Get overview info for this tile's z level */
118
121
  get tileMatrix() {
@@ -138,19 +141,20 @@ export class RasterTileNode {
138
141
  const childZ = this.z + 1;
139
142
  const childMatrix = this.metadata.tileMatrices[childZ];
140
143
  // Compute this tile's bounds in TMS' CRS
141
- const parentBounds = computeProjectedTileBounds({
144
+ const parentBounds = computeProjectedTileBounds(parentMatrix, {
142
145
  x: this.x,
143
146
  y: this.y,
144
- transform: parentMatrix.geotransform,
145
- tileWidth: parentMatrix.tileWidth,
146
- tileHeight: parentMatrix.tileHeight,
147
147
  });
148
148
  // Find overlapping child index range
149
149
  const { minCol, maxCol, minRow, maxRow } = getOverlappingChildRange(parentBounds, childMatrix);
150
150
  const children = [];
151
+ const { metadata, projectTo3857 } = this;
151
152
  for (let y = minRow; y <= maxRow; y++) {
152
153
  for (let x = minCol; x <= maxCol; x++) {
153
- children.push(new RasterTileNode(x, y, childZ, this.metadata));
154
+ children.push(new RasterTileNode(x, y, childZ, {
155
+ metadata,
156
+ projectTo3857,
157
+ }));
154
158
  }
155
159
  }
156
160
  this._children = children.length > 0 ? children : null;
@@ -269,10 +273,7 @@ export class RasterTileNode {
269
273
  insideBounds(bounds, commonSpaceBounds) {
270
274
  const [minX, minY, maxX, maxY] = bounds;
271
275
  const [tileMinX, tileMinY, tileMaxX, tileMaxY] = commonSpaceBounds;
272
- // console.log("bounds:", bounds);
273
- // console.log("tile bounds:", commonSpaceBounds);
274
276
  const inside = tileMinX < maxX && tileMaxX > minX && tileMinY < maxY && tileMaxY > minY;
275
- // console.log("insideBounds", inside);
276
277
  return inside;
277
278
  }
278
279
  /**
@@ -306,16 +307,12 @@ export class RasterTileNode {
306
307
  */
307
308
  _getGenericBoundingVolume(zRange) {
308
309
  const tileMatrix = this.tileMatrix;
309
- const { tileWidth, tileHeight, geotransform } = tileMatrix;
310
310
  const [minZ, maxZ] = zRange;
311
- const tileCrsBounds = computeProjectedTileBounds({
311
+ const tileCrsBounds = computeProjectedTileBounds(tileMatrix, {
312
312
  x: this.x,
313
313
  y: this.y,
314
- transform: geotransform,
315
- tileWidth,
316
- tileHeight,
317
314
  });
318
- const refPointsEPSG3857 = sampleReferencePointsInEPSG3857(REF_POINTS_9, tileCrsBounds, this.metadata.projectTo3857);
315
+ const refPointsEPSG3857 = sampleReferencePointsInEPSG3857(REF_POINTS_9, tileCrsBounds, this.projectTo3857);
319
316
  const commonSpacePositions = refPointsEPSG3857.map((xy) => rescaleEPSG3857ToCommonSpace(xy));
320
317
  const refPointPositions = [];
321
318
  for (const p of commonSpacePositions) {
@@ -357,41 +354,13 @@ export class RasterTileNode {
357
354
  *
358
355
  * @return The bounding box as [minX, minY, maxX, maxY] in projected CRS.
359
356
  */
360
- function computeProjectedTileBounds({ x, y, transform, tileWidth, tileHeight, }) {
361
- // geotransform: [a, b, c, d, e, f] where:
362
- // x_geo = a * col + b * row + c
363
- // y_geo = d * col + e * row + f
364
- const [a, b, c, d, e, f] = transform;
365
- // Currently only support non-rotated/non-skewed transforms
366
- if (b !== 0 || d !== 0) {
367
- throw new Error(`Rotated/skewed geotransforms not yet supported (b=${b}, d=${d}). ` +
368
- `Only north-up, non-rotated rasters are currently supported.`);
369
- }
370
- // Calculate pixel coordinates for this tile's extent
371
- const pixelMinCol = x * tileWidth;
372
- const pixelMinRow = y * tileHeight;
373
- const pixelMaxCol = (x + 1) * tileWidth;
374
- const pixelMaxRow = (y + 1) * tileHeight;
375
- // Convert pixel coordinates to geographic coordinates using geotransform
376
- const minX = a * pixelMinCol + b * pixelMinRow + c;
377
- const minY = d * pixelMinCol + e * pixelMinRow + f;
378
- const maxX = a * pixelMaxCol + b * pixelMaxRow + c;
379
- const maxY = d * pixelMaxCol + e * pixelMaxRow + f;
380
- // Note: often `e` in the geotransform is negative (for a north up image when
381
- // the origin is in the **top** left, then increasing the pixel row means
382
- // going down in geospatial space), so maxY < minY
383
- //
384
- // We want to always return an axis-aligned bbox in the form of
385
- // [minX, minY, maxX, maxY], so we need to swap if necessary.
386
- //
387
- // For now, we just use Math.min/Math.max to ensure correct ordering, but we
388
- // could remove the min/max calls if we assume that `a` and `e` are always
389
- // positive/negative respectively.
357
+ function computeProjectedTileBounds(tileMatrix, { x, y, }) {
358
+ const bounds = xy_bounds(tileMatrix, { x, y });
390
359
  return [
391
- Math.min(minX, maxX),
392
- Math.min(minY, maxY),
393
- Math.max(minX, maxX),
394
- Math.max(minY, maxY),
360
+ bounds.lowerLeft[0],
361
+ bounds.lowerLeft[1],
362
+ bounds.upperRight[0],
363
+ bounds.upperRight[1],
395
364
  ];
396
365
  }
397
366
  /**
@@ -411,7 +380,7 @@ function sampleReferencePointsInEPSG3857(refPoints, tileBounds, projectTo3857) {
411
380
  const geoX = minX + relX * (maxX - minX);
412
381
  const geoY = minY + relY * (maxY - minY);
413
382
  // Reproject to Web Mercator (EPSG 3857)
414
- const projected = projectTo3857([geoX, geoY]);
383
+ const projected = projectTo3857(geoX, geoY);
415
384
  refPointPositions.push(projected);
416
385
  }
417
386
  return refPointPositions;
@@ -492,7 +461,7 @@ function getOverlappingChildRange(parentBounds, childMatrix) {
492
461
  * Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
493
462
  */
494
463
  export function getTileIndices(metadata, opts) {
495
- const { viewport, maxZ, zRange } = opts;
464
+ const { viewport, maxZ, zRange, wgs84Bounds } = opts;
496
465
  // Only define `project` function for Globe viewports, same as upstream
497
466
  const project = viewport instanceof _GlobeViewport && viewport.resolution
498
467
  ? viewport.projectPosition
@@ -530,7 +499,7 @@ export function getTileIndices(metadata, opts) {
530
499
  // In our case we want LOD to be evaluated at **all** levels, so we set the
531
500
  // minZ to 0
532
501
  const minZ = 0;
533
- const { lowerLeft, upperRight } = metadata.wgsBounds;
502
+ const { lowerLeft, upperRight } = wgs84Bounds;
534
503
  const [minLng, minLat] = lowerLeft;
535
504
  const [maxLng, maxLat] = upperRight;
536
505
  const bottomLeft = lngLatToWorld([minLng, minLat]);
@@ -549,7 +518,10 @@ export function getTileIndices(metadata, opts) {
549
518
  const roots = [];
550
519
  for (let y = 0; y < rootMatrix.matrixHeight; y++) {
551
520
  for (let x = 0; x < rootMatrix.matrixWidth; x++) {
552
- roots.push(new RasterTileNode(x, y, 0, metadata));
521
+ roots.push(new RasterTileNode(x, y, 0, {
522
+ metadata,
523
+ projectTo3857: opts.projectTo3857,
524
+ }));
553
525
  }
554
526
  }
555
527
  // Traverse and update visibility
@@ -562,8 +534,6 @@ export function getTileIndices(metadata, opts) {
562
534
  maxZ,
563
535
  bounds,
564
536
  };
565
- // console.log("traversalParams", traversalParams);
566
- // console.log("roots", roots);
567
537
  for (const root of roots) {
568
538
  root.update(traversalParams);
569
539
  }
@@ -592,17 +562,6 @@ function getMetersPerPixelAtBoundingVolume(boundingVolume, zoom) {
592
562
  const [_lng, lat] = worldToLngLat(boundingVolume.center);
593
563
  return getMetersPerPixel(lat, zoom);
594
564
  }
595
- // function getScreenMetersPerPixel(viewport: Viewport, center: Vector3): number {
596
- // const lng
597
- // const p0 = viewport.projectPosition(center);
598
- // const p1 = viewport.projectPosition([
599
- // centerArray[0]! + 1,
600
- // centerArray[1]!,
601
- // centerArray[2]!,
602
- // ]);
603
- // const pixelsPerMeter = Math.hypot(p1[0] - p0[0], p1[1] - p0[1]);
604
- // return 1 / pixelsPerMeter;
605
- // }
606
565
  /**
607
566
  * Exports only for use in testing
608
567
  */
@@ -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,20 +1,28 @@
1
1
  /**
2
- * RasterTileset2D - Improved Implementation with Frustum Culling
2
+ * TileMatrixSetTileset - Improved Implementation with Frustum Culling
3
3
  *
4
4
  * This version properly implements frustum culling and bounding volume calculations
5
5
  * following the pattern from deck.gl's OSM tile indexing.
6
6
  */
7
7
  import type { Viewport } from "@deck.gl/core";
8
+ import type { _Tileset2DProps as Tileset2DProps } from "@deck.gl/geo-layers";
8
9
  import { _Tileset2D as Tileset2D } from "@deck.gl/geo-layers";
10
+ import type { TileMatrixSet } from "@developmentseed/morecantile";
9
11
  import type { Matrix4 } from "@math.gl/core";
10
- import type { TileIndex, TileMatrixSet, ZRange } from "./types";
11
- type Tileset2DProps = any;
12
+ import type { ProjectionFunction, TileIndex, ZRange } from "./types";
12
13
  /**
13
- * RasterTileset2D with proper frustum culling
14
+ * A generic tileset implementation organized according to the OGC
15
+ * [TileMatrixSet](https://docs.ogc.org/is/17-083r4/17-083r4.html)
16
+ * specification.
14
17
  */
15
- export declare class RasterTileset2D extends Tileset2D {
16
- private metadata;
17
- constructor(metadata: TileMatrixSet, opts: Tileset2DProps);
18
+ export declare class TileMatrixSetTileset extends Tileset2D {
19
+ private tms;
20
+ private wgs84Bounds;
21
+ private projectTo3857;
22
+ constructor(opts: Tileset2DProps, tms: TileMatrixSet, { projectTo4326, projectTo3857, }: {
23
+ projectTo4326: ProjectionFunction;
24
+ projectTo3857: ProjectionFunction;
25
+ });
18
26
  /**
19
27
  * Get tile indices visible in viewport
20
28
  * Uses frustum culling similar to OSM implementation
@@ -34,5 +42,4 @@ export declare class RasterTileset2D extends Tileset2D {
34
42
  getTileZoom(index: TileIndex): number;
35
43
  getTileMetadata(index: TileIndex): Record<string, unknown>;
36
44
  }
37
- export {};
38
45
  //# sourceMappingURL=raster-tileset-2d.d.ts.map
@@ -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,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAU,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIxE,KAAK,cAAc,GAAG,GAAG,CAAC;AAE1B;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc;IAKzD;;;;;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;IAkB3C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIrC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA6DpE"}
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,EAAE,eAAe,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAIV,kBAAkB,EAClB,SAAS,EACT,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,WAAW,CAAe;IAClC,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;IAiBH;;;;;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;IAmBN,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAInC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAkB3C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIrC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA4CpE"}
@@ -1,19 +1,32 @@
1
1
  /**
2
- * RasterTileset2D - Improved Implementation with Frustum Culling
2
+ * TileMatrixSetTileset - Improved Implementation with Frustum Culling
3
3
  *
4
4
  * This version properly implements frustum culling and bounding volume calculations
5
5
  * following the pattern from deck.gl's OSM tile indexing.
6
6
  */
7
7
  import { _Tileset2D as Tileset2D } from "@deck.gl/geo-layers";
8
+ import * as affine from "@developmentseed/affine";
9
+ import { tileTransform } from "@developmentseed/morecantile";
8
10
  import { getTileIndices } from "./raster-tile-traversal";
9
11
  /**
10
- * RasterTileset2D with proper frustum culling
12
+ * A generic tileset implementation organized according to the OGC
13
+ * [TileMatrixSet](https://docs.ogc.org/is/17-083r4/17-083r4.html)
14
+ * specification.
11
15
  */
12
- export class RasterTileset2D extends Tileset2D {
13
- metadata;
14
- constructor(metadata, opts) {
16
+ export class TileMatrixSetTileset extends Tileset2D {
17
+ tms;
18
+ wgs84Bounds;
19
+ projectTo3857;
20
+ constructor(opts, tms, { projectTo4326, projectTo3857, }) {
15
21
  super(opts);
16
- this.metadata = metadata;
22
+ this.tms = tms;
23
+ this.projectTo3857 = projectTo3857;
24
+ if (!tms.boundingBox) {
25
+ throw new Error("Bounding Box inference not yet implemented; should be provided on TileMatrixSet");
26
+ }
27
+ this.wgs84Bounds = projectBoundsToWgs84(tms.boundingBox, projectTo4326, {
28
+ densifyPts: 10,
29
+ });
17
30
  }
18
31
  /**
19
32
  * Get tile indices visible in viewport
@@ -22,17 +35,17 @@ export class RasterTileset2D extends Tileset2D {
22
35
  * Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
23
36
  */
24
37
  getTileIndices(opts) {
25
- // console.log("Called getTileIndices", opts);
26
- const maxAvailableZ = this.metadata.tileMatrices.length - 1;
38
+ const maxAvailableZ = this.tms.tileMatrices.length - 1;
27
39
  const maxZ = typeof opts.maxZoom === "number"
28
40
  ? Math.min(opts.maxZoom, maxAvailableZ)
29
41
  : maxAvailableZ;
30
- const tileIndices = getTileIndices(this.metadata, {
42
+ const tileIndices = getTileIndices(this.tms, {
31
43
  viewport: opts.viewport,
32
44
  maxZ,
33
45
  zRange: opts.zRange ?? null,
46
+ wgs84Bounds: this.wgs84Bounds,
47
+ projectTo3857: this.projectTo3857,
34
48
  });
35
- // console.log("Visible tile indices:", tileIndices.length);
36
49
  return tileIndices;
37
50
  }
38
51
  getTileId(index) {
@@ -43,8 +56,8 @@ export class RasterTileset2D extends Tileset2D {
43
56
  // Already at coarsest level
44
57
  return index;
45
58
  }
46
- const currentOverview = this.metadata.tileMatrices[index.z];
47
- const parentOverview = this.metadata.tileMatrices[index.z - 1];
59
+ const currentOverview = this.tms.tileMatrices[index.z];
60
+ const parentOverview = this.tms.tileMatrices[index.z - 1];
48
61
  const decimation = currentOverview.cellSize / parentOverview.cellSize;
49
62
  return {
50
63
  x: Math.floor(index.x / decimation),
@@ -57,36 +70,20 @@ export class RasterTileset2D extends Tileset2D {
57
70
  }
58
71
  getTileMetadata(index) {
59
72
  const { x, y, z } = index;
60
- const { tileMatrices } = this.metadata;
73
+ const { tileMatrices } = this.tms;
61
74
  const tileMatrix = tileMatrices[z];
62
- const { geotransform, tileHeight, tileWidth } = tileMatrix;
63
- // Use geotransform to calculate tile bounds
64
- // geotransform: [a, b, c, d, e, f] where:
65
- // x_geo = a * col + b * row + c
66
- // y_geo = d * col + e * row + f
67
- const [a, b, c, d, e, f] = geotransform;
75
+ const { tileHeight, tileWidth } = tileMatrix;
76
+ const tileAffine = tileTransform(tileMatrix, { col: x, row: y });
68
77
  // Calculate pixel coordinates for this tile's extent
69
78
  const pixelMinCol = x * tileWidth;
70
79
  const pixelMinRow = y * tileHeight;
71
80
  const pixelMaxCol = (x + 1) * tileWidth;
72
81
  const pixelMaxRow = (y + 1) * tileHeight;
73
82
  // Calculate the four corners of the tile in geographic coordinates
74
- const topLeft = [
75
- a * pixelMinCol + b * pixelMinRow + c,
76
- d * pixelMinCol + e * pixelMinRow + f,
77
- ];
78
- const topRight = [
79
- a * pixelMaxCol + b * pixelMinRow + c,
80
- d * pixelMaxCol + e * pixelMinRow + f,
81
- ];
82
- const bottomLeft = [
83
- a * pixelMinCol + b * pixelMaxRow + c,
84
- d * pixelMinCol + e * pixelMaxRow + f,
85
- ];
86
- const bottomRight = [
87
- a * pixelMaxCol + b * pixelMaxRow + c,
88
- d * pixelMaxCol + e * pixelMaxRow + f,
89
- ];
83
+ const topLeft = affine.apply(tileAffine, pixelMinCol, pixelMinRow);
84
+ const topRight = affine.apply(tileAffine, pixelMaxCol, pixelMinRow);
85
+ const bottomLeft = affine.apply(tileAffine, pixelMinCol, pixelMaxRow);
86
+ const bottomRight = affine.apply(tileAffine, pixelMaxCol, pixelMaxRow);
90
87
  // Return the projected bounds as four corners
91
88
  // This preserves rotation/skew information
92
89
  const projectedBounds = {
@@ -111,4 +108,49 @@ export class RasterTileset2D extends Tileset2D {
111
108
  };
112
109
  }
113
110
  }
111
+ function projectBoundsToWgs84(bounds, projectTo4326, { densifyPts }) {
112
+ const { lowerLeft, upperRight } = bounds;
113
+ // Four corners of the bounding box
114
+ const corners = [
115
+ lowerLeft,
116
+ [upperRight[0], lowerLeft[1]],
117
+ upperRight,
118
+ [lowerLeft[0], upperRight[1]],
119
+ ];
120
+ // Densify edges: interpolate densifyPts points along each edge
121
+ const points = [];
122
+ for (let i = 0; i < corners.length; i++) {
123
+ const from = corners[i];
124
+ const to = corners[(i + 1) % corners.length];
125
+ // Include the start corner and all intermediate points (end corner
126
+ // will be included as the start of the next edge)
127
+ for (let j = 0; j <= densifyPts; j++) {
128
+ const t = j / (densifyPts + 1);
129
+ points.push([
130
+ from[0] + (to[0] - from[0]) * t,
131
+ from[1] + (to[1] - from[1]) * t,
132
+ ]);
133
+ }
134
+ }
135
+ // Reproject all points to WGS84 and compute the bounding box
136
+ let wgsMinX = Infinity;
137
+ let wgsMinY = Infinity;
138
+ let wgsMaxX = -Infinity;
139
+ let wgsMaxY = -Infinity;
140
+ for (const [x, y] of points) {
141
+ const [lon, lat] = projectTo4326(x, y);
142
+ if (lon < wgsMinX)
143
+ wgsMinX = lon;
144
+ if (lat < wgsMinY)
145
+ wgsMinY = lat;
146
+ if (lon > wgsMaxX)
147
+ wgsMaxX = lon;
148
+ if (lat > wgsMaxY)
149
+ wgsMaxY = lat;
150
+ }
151
+ return {
152
+ lowerLeft: [wgsMinX, wgsMinY],
153
+ upperRight: [wgsMaxX, wgsMaxY],
154
+ };
155
+ }
114
156
  //# sourceMappingURL=raster-tileset-2d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tileset-2d.js","sourceRoot":"","sources":["../../src/raster-tileset/raster-tileset-2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-tileset-2d.js","sourceRoot":"","sources":["../../src/raster-tileset/raster-tileset-2d.ts"],"names":[],"mappings":"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"}
@@ -24,123 +24,19 @@ export type TileLoadProps = {
24
24
  };
25
25
  export type Point = [number, number];
26
26
  type CRS = any;
27
+ export type ProjectionFunction = (x: number, y: number) => Point;
27
28
  /**
28
- * Minimum bounding rectangle surrounding a 2D resource in the CRS indicated elsewhere
29
+ * Bounding box defined by two named corners
29
30
  */
30
- export interface TileMatrixSetBoundingBox {
31
+ export type CornerBounds = {
31
32
  lowerLeft: Point;
32
33
  upperRight: Point;
33
- crs?: CRS;
34
- }
35
- /**
36
- * Represents a single resolution level in a raster tileset.
37
- *
38
- * COGs contain multiple resolution levels (overviews) for efficient
39
- * visualization at different zoom levels.
40
- *
41
- * IMPORTANT: Overviews are ordered according to TileMatrixSet specification:
42
- * - Index 0: Coarsest resolution (most zoomed out)
43
- * - Index N: Finest resolution (most zoomed in)
44
- *
45
- * This matches the natural ordering where z increases with detail.
46
- */
47
- export type TileMatrix = {
48
- id: string;
49
- /**
50
- * Scale denominator of this tile matrix.
51
- *
52
- * Defined as cellSize (meters per pixel) * meters per unit / 0.00028
53
- */
54
- scaleDenominator: number;
55
- /**
56
- * Cell size of this tile matrix.
57
- *
58
- * CRS units per pixel (not necessarily meters).
59
- */
60
- cellSize: number;
61
- pointOfOrigin: Point;
62
- /**
63
- * Width of each tile of this tile matrix in pixels.
64
- */
65
- tileWidth: number;
66
- /**
67
- * Height of each tile of this tile matrix in pixels.
68
- */
69
- tileHeight: number;
70
- /**
71
- * Number of tiles in the X (horizontal) direction at this overview level.
72
- *
73
- * Calculated as: Math.ceil(width / tileWidth)
74
- *
75
- * @example
76
- * // If tileWidth = 512:
77
- * tilesX: 3 // z=0: ceil(1250 / 512)
78
- * tilesX: 5 // z=1: ceil(2500 / 512)
79
- * tilesX: 10 // z=2: ceil(5000 / 512)
80
- * tilesX: 20 // z=3: ceil(10000 / 512)
81
- */
82
- matrixWidth: number;
83
- /**
84
- * Number of tiles in the Y (vertical) direction at this overview level.
85
- *
86
- * Calculated as: Math.ceil(height / tileHeight)
87
- *
88
- * @example
89
- * // If tileHeight = 512:
90
- * tilesY: 2 // z=0: ceil(1000 / 512)
91
- * tilesY: 4 // z=1: ceil(2000 / 512)
92
- * tilesY: 8 // z=2: ceil(4000 / 512)
93
- * tilesY: 16 // z=3: ceil(8000 / 512)
94
- */
95
- matrixHeight: number;
96
- /**
97
- * Affine geotransform for this overview level.
98
- *
99
- * Uses Python `affine` package ordering (NOT GDAL ordering):
100
- * [a, b, c, d, e, f] where:
101
- * - x_geo = a * col + b * row + c
102
- * - y_geo = d * col + e * row + f
103
- *
104
- * Parameters:
105
- * - a: pixel width (x resolution)
106
- * - b: row rotation (typically 0)
107
- * - c: x-coordinate of upper-left corner of the upper-left pixel
108
- * - d: column rotation (typically 0)
109
- * - e: pixel height (y resolution, typically negative)
110
- * - f: y-coordinate of upper-left corner of the upper-left pixel
111
- *
112
- * @example
113
- * // For a UTM image with 30m pixels:
114
- * [30, 0, 440720, 0, -30, 3751320]
115
- * // x_geo = 30 * col + 440720
116
- * // y_geo = -30 * row + 3751320
117
- */
118
- geotransform: [number, number, number, number, number, number];
119
34
  };
120
35
  /**
121
- * COG Metadata extracted from GeoTIFF
36
+ * Minimum bounding rectangle surrounding a 2D resource in the CRS indicated elsewhere
122
37
  */
123
- export type TileMatrixSet = {
124
- /**
125
- * Title of this tile matrix set, normally used for display to a human
126
- */
127
- title?: string;
128
- /**
129
- * Brief narrative description of this tile matrix set, normally available for display to a human
130
- */
131
- description?: string;
132
- crs: CRS;
133
- boundingBox?: TileMatrixSetBoundingBox;
134
- /**
135
- * Describes scale levels and its tile matrices
136
- */
137
- tileMatrices: TileMatrix[];
138
- /**
139
- * Bounding box of this TMS in WGS84 lon/lat.
140
- */
141
- wgsBounds: TileMatrixSetBoundingBox;
142
- projectToWgs84: (point: [number, number]) => [number, number];
143
- projectTo3857: (point: [number, number]) => [number, number];
38
+ export type TileMatrixSetBoundingBox = CornerBounds & {
39
+ crs?: CRS;
144
40
  };
145
41
  /**
146
42
  * Raster Tile Index
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErC,KAAK,GAAG,GAAG,GAAG,CAAC;AAEf,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG;IACpD,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IAEV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;CACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@developmentseed/deck.gl-raster",
3
- "version": "0.1.0",
3
+ "version": "0.3.0-beta.3",
4
4
  "description": "Georeferenced image data visualization in deck.gl",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -37,26 +37,28 @@
37
37
  "url": "git+https://github.com/developmentseed/deck.gl-raster.git"
38
38
  },
39
39
  "devDependencies": {
40
- "@luma.gl/core": "9.2.5",
41
- "@luma.gl/shadertools": "9.2.5",
42
- "@types/node": "^25.0.3",
40
+ "@luma.gl/core": "9.2.6",
41
+ "@luma.gl/shadertools": "9.2.6",
42
+ "@types/node": "^25.1.0",
43
43
  "jsdom": "^27.4.0",
44
44
  "typescript": "^5.9.3",
45
- "vitest": "^4.0.16"
45
+ "vitest": "^4.0.18"
46
46
  },
47
47
  "peerDependencies": {
48
- "@deck.gl/core": "^9.2.5",
49
- "@deck.gl/geo-layers": "^9.2.5",
50
- "@deck.gl/layers": "^9.2.5",
51
- "@deck.gl/mesh-layers": "^9.2.5",
52
- "@luma.gl/core": "^9.2.5",
53
- "@luma.gl/shadertools": "^9.2.5"
48
+ "@deck.gl/core": "^9.2.7",
49
+ "@deck.gl/geo-layers": "^9.2.7",
50
+ "@deck.gl/layers": "^9.2.7",
51
+ "@deck.gl/mesh-layers": "^9.2.7",
52
+ "@luma.gl/core": "^9.2.7",
53
+ "@luma.gl/shadertools": "^9.2.7"
54
54
  },
55
55
  "dependencies": {
56
56
  "@math.gl/core": "^4.1.0",
57
57
  "@math.gl/culling": "^4.1.0",
58
58
  "@math.gl/web-mercator": "^4.1.0",
59
- "@developmentseed/raster-reproject": "^0.1.0"
59
+ "@developmentseed/affine": "^0.3.0-beta.3",
60
+ "@developmentseed/raster-reproject": "^0.3.0-beta.3",
61
+ "@developmentseed/morecantile": "^0.3.0-beta.3"
60
62
  },
61
63
  "volta": {
62
64
  "extends": "../../package.json"