@developmentseed/deck.gl-raster 0.2.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.
- package/dist/gpu-modules/color/black-is-zero.d.ts +12 -0
- package/dist/gpu-modules/color/black-is-zero.d.ts.map +1 -0
- package/dist/gpu-modules/color/black-is-zero.js +19 -0
- package/dist/gpu-modules/color/black-is-zero.js.map +1 -0
- package/dist/gpu-modules/color/white-is-zero.d.ts +12 -0
- package/dist/gpu-modules/color/white-is-zero.d.ts.map +1 -0
- package/dist/gpu-modules/color/white-is-zero.js +19 -0
- package/dist/gpu-modules/color/white-is-zero.js.map +1 -0
- package/dist/gpu-modules/rescale-snorm-to-unorm.d.ts +12 -0
- package/dist/gpu-modules/rescale-snorm-to-unorm.d.ts.map +1 -0
- package/dist/gpu-modules/rescale-snorm-to-unorm.js +19 -0
- package/dist/gpu-modules/rescale-snorm-to-unorm.js.map +1 -0
- package/dist/gpu-modules/rgb-color.d.ts +1 -0
- package/dist/gpu-modules/rgb-color.d.ts.map +1 -0
- package/dist/gpu-modules/rgb-color.js +2 -0
- package/dist/gpu-modules/rgb-color.js.map +1 -0
- package/dist/gpu-modules/ycbcr.d.ts +13 -0
- package/dist/gpu-modules/ycbcr.d.ts.map +1 -0
- package/dist/gpu-modules/ycbcr.js +31 -0
- package/dist/gpu-modules/ycbcr.js.map +1 -0
- package/dist/index.d.ts +2 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/raster-tileset/index.d.ts +1 -2
- package/dist/raster-tileset/index.d.ts.map +1 -1
- package/dist/raster-tileset/index.js +1 -1
- package/dist/raster-tileset/index.js.map +1 -1
- package/dist/raster-tileset/raster-tile-traversal.d.ts +10 -6
- package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
- package/dist/raster-tileset/raster-tile-traversal.js +25 -66
- package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
- package/dist/raster-tileset/raster-tileset-2d.d.ts +14 -6
- package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
- package/dist/raster-tileset/raster-tileset-2d.js +77 -35
- package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
- package/dist/raster-tileset/types.d.ts +6 -110
- package/dist/raster-tileset/types.d.ts.map +1 -1
- package/package.json +12 -10
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -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 @@
|
|
|
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 {
|
|
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,
|
|
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
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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 {
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EACV,MAAM,EACN,
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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,
|
|
361
|
-
|
|
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
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
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(
|
|
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 } =
|
|
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,
|
|
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":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAUrE;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,sEAAsE;AACtE,eAAe;AACf,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,+EAA+E;AAC/E,4EAA4E;AAC5E,6CAA6C;AAC7C,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAEhE,+DAA+D;AAC/D,MAAM,YAAY,GAAuB;IACvC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS;IACrB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW;IACnB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc;IACtB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY;IACpB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe;CACxB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;IACvC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY;IACtB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW;IACrB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa;IACvB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc;CACzB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC;AAChE,MAAM,4BAA4B,GAAG,uBAAuB,GAAG,CAAC,CAAC;AAEjE,oBAAoB;AACpB,uDAAuD;AACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACzB,yBAAyB;IACzB,CAAC,CAAS;IAEV,0BAA0B;IAC1B,CAAC,CAAS;IAEV,uDAAuD;IACvD,CAAC,CAAS;IAEF,QAAQ,CAAgB;IAEhC;;;;;OAKG;IACK,YAAY,CAAW;IAE/B;;;;OAIG;IACK,QAAQ,CAAW;IAE3B,4CAA4C;IACpC,SAAS,CAA2B;IAE5C,YAAY,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,QAAuB;QAClE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,gDAAgD;IAChD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,4CAA4C;gBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,4DAA4D;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAE,CAAC;YAExD,yCAAyC;YACzC,MAAM,YAAY,GAAG,0BAA0B,CAAC;gBAC9C,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,SAAS,EAAE,YAAY,CAAC,YAAY;gBACpC,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,UAAU,EAAE,YAAY,CAAC,UAAU;aACpC,CAAC,CAAC;YAEH,qCAAqC;YACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CACjE,YAAY,EACZ,WAAW,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAqB,EAAE,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAcN;QACC,cAAc;QACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,IAAI,EACJ,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAC5C,OAAO,EACP,MAAM,GACP,GAAG,MAAM,CAAC;QAEX,oCAAoC;QACpC,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAClE,eAAe,EACf,OAAO,CACR,CAAC;QAEF,0BAA0B;QAC1B,wEAAwE;QACxE,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kBAAkB;QAClB,+DAA+D;QAC/D,gEAAgE;QAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,kEAAkE;QAClE,4EAA4E;QAC5E,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,oBAAoB,GAAG,iCAAiC,CAC5D,cAAc,EACd,QAAQ,CAAC,IAAI,CACd,CAAC;YACF,6DAA6D;YAE7D,MAAM,kBAAkB,GACtB,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;YAEvD,yDAAyD;YAEzD,2EAA2E;YAE3E,iEAAiE;YAEjE,iDAAiD;YACjD,yBAAyB;YACzB,wEAAwE;YAExE,eAAe;YACf,wCAAwC;YACxC,sCAAsC;YACtC,KAAK;YAEL,eAAe;YACf,kDAAkD;YAClD,gDAAgD;YAChD,KAAK;YAEL,IACE,kBAAkB,IAAI,oBAAoB;gBAC1C,IAAI,CAAC,CAAC,IAAI,IAAI;gBACd,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EACrC,CAAC;gBACD,2EAA2E;gBAC3E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,EAAE;QACF,qEAAqE;QACrE,0EAA0E;QAC1E,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAEtB,IAAI,eAAe,GAAG,KAAK,CAAC;YAE5B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC;YACpC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,SAA2B,EAAE;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAc,EAAE,iBAAyB;QACpD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;QACxC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CAAC;QAEnE,kCAAkC;QAClC,kDAAkD;QAElD,MAAM,MAAM,GACV,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;QAC3E,uCAAuC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,MAAc,EACd,OAA6C;QAE7C,uEAAuE;QACvE,gEAAgE;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,EAAE,iDAAiD,CAAC,CAAC;YACjE,sEAAsE;YACtE,+DAA+D;QACjE,CAAC;QAED,0EAA0E;QAC1E,eAAe;QAEf,uEAAuE;QACvE,oEAAoE;QACpE,WAAW;QAEX,kEAAkE;QAClE,qDAAqD;QACrD,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAAC,MAAc;QAI9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QAC3D,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;QAE5B,MAAM,aAAa,GAAG,0BAA0B,CAAC;YAC/C,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,SAAS,EAAE,YAAY;YACvB,SAAS;YACT,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,+BAA+B,CACvD,YAAY,EACZ,aAAa,EACb,IAAI,CAAC,QAAQ,CAAC,aAAa,CAC5B,CAAC;QAEF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACxD,4BAA4B,CAAC,EAAE,CAAC,CACjC,CAAC;QAEF,MAAM,iBAAiB,GAA+B,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC;YACrC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAE3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,iEAAiE;gBACjE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEpC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,iBAAiB,GAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO;YACL,cAAc,EAAE,iCAAiC,CAAC,iBAAiB,CAAC;YACpE,iBAAiB;SAClB,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,SAAS,0BAA0B,CAAC,EAClC,CAAC,EACD,CAAC,EACD,SAAS,EACT,SAAS,EACT,UAAU,GAOX;IACC,0CAA0C;IAC1C,gCAAgC;IAChC,gCAAgC;IAChC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAErC,2DAA2D;IAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,qDAAqD,CAAC,OAAO,CAAC,KAAK;YACjE,6DAA6D,CAChE,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC;IAClC,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC;IACnC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACxC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAEzC,yEAAyE;IACzE,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;IAEnD,6EAA6E;IAC7E,yEAAyE;IACzE,kDAAkD;IAClD,EAAE;IACF,+DAA+D;IAC/D,6DAA6D;IAC7D,EAAE;IACF,4EAA4E;IAC5E,0EAA0E;IAC1E,kCAAkC;IAClC,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;KACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,+BAA+B,CACtC,SAA6B,EAC7B,UAA4C,EAC5C,aAAyD;IAEzD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;IAC5C,MAAM,iBAAiB,GAAuB,EAAE,CAAC;IAEjD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAEzC,wCAAwC;QACxC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAmB;IAI5D,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,4BAA4B,EAC7B,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAC1C,CAAC;IAEF,OAAO;QACL,CAAC,CAAC,GAAG,uBAAuB,GAAG,GAAG,CAAC,GAAG,SAAS;QAC/C,CAAC,QAAQ,GAAG,uBAAuB,GAAG,GAAG,CAAC,GAAG,SAAS;KACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAS,wBAAwB,CAC/B,YAA8C,EAC9C,WAAuB;IAOvB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC;IAElD,MAAM,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,GACd,GAAG,WAAW,CAAC;IAEhB,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/C,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;IAEjD,kCAAkC;IAClC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC,oCAAoC;IACpC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAC/D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAE/D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAChE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,IAIC;IAED,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExC,uEAAuE;IACvE,MAAM,OAAO,GACX,QAAQ,YAAY,cAAc,IAAI,QAAQ,CAAC,UAAU;QACvD,CAAC,CAAC,QAAQ,CAAC,eAAe;QAC1B,CAAC,CAAC,IAAI,CAAC;IAEX,+CAA+C;IAC/C,wBAAwB;IACxB,MAAM,MAAM,GAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CACpE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CACvE,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAEhD,6CAA6C;IAC7C,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEhE,8EAA8E;IAC9E,iEAAiE;IACjE,EAAE;IACF,kBAAkB;IAClB,EAAE;IACF,QAAQ;IACR,eAAe;IACf,gFAAgF;IAChF,MAAM;IACN,EAAE;IACF,8BAA8B;IAC9B,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,iEAAiE;IACjE,EAAE;IACF,oEAAoE;IACpE,kEAAkE;IAClE,EAAE;IACF,2EAA2E;IAC3E,yDAAyD;IACzD,EAAE;IACF,2EAA2E;IAC3E,YAAY;IACZ,MAAM,IAAI,GAAG,CAAC,CAAC;IAEf,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAW;QACrB,UAAU,CAAC,CAAC,CAAC;QACb,UAAU,CAAC,CAAC,CAAC;QACb,QAAQ,CAAC,CAAC,CAAC;QACX,QAAQ,CAAC,CAAC,CAAC;KACZ,CAAC;IAEF,+BAA+B;IAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;IAE7C,sCAAsC;IACtC,qEAAqE;IACrE,uBAAuB;IACvB,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,eAAe,GAAG;QACtB,QAAQ;QACR,OAAO;QACP,aAAa;QACb,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,CAAW;QACvD,IAAI;QACJ,IAAI;QACJ,MAAM;KACP,CAAC;IAEF,mDAAmD;IACnD,+BAA+B;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;IAED,yBAAyB;IACzB,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IACvD,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACxC,OAAO,CACL,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QAC3D,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,cAAmC,EACnC,IAAY;IAEZ,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,kFAAkF;AAClF,cAAc;AACd,iDAAiD;AACjD,0CAA0C;AAC1C,2BAA2B;AAC3B,uBAAuB;AACvB,uBAAuB;AACvB,QAAQ;AAER,qEAAqE;AACrE,+BAA+B;AAC/B,IAAI;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,0BAA0B;IAC1B,cAAc;CACf,CAAC"}
|
|
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,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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.
|
|
@@ -7,14 +7,22 @@
|
|
|
7
7
|
import type { Viewport } from "@deck.gl/core";
|
|
8
8
|
import type { _Tileset2DProps as Tileset2DProps } from "@deck.gl/geo-layers";
|
|
9
9
|
import { _Tileset2D as Tileset2D } from "@deck.gl/geo-layers";
|
|
10
|
+
import type { TileMatrixSet } from "@developmentseed/morecantile";
|
|
10
11
|
import type { Matrix4 } from "@math.gl/core";
|
|
11
|
-
import type {
|
|
12
|
+
import type { ProjectionFunction, TileIndex, ZRange } from "./types";
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
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
|
|
16
|
-
private
|
|
17
|
-
|
|
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
|
|
@@ -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,EAAE,eAAe,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
export class TileMatrixSetTileset extends Tileset2D {
|
|
17
|
+
tms;
|
|
18
|
+
wgs84Bounds;
|
|
19
|
+
projectTo3857;
|
|
20
|
+
constructor(opts, tms, { projectTo4326, projectTo3857, }) {
|
|
15
21
|
super(opts);
|
|
16
|
-
this.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
47
|
-
const parentOverview = this.
|
|
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.
|
|
73
|
+
const { tileMatrices } = this.tms;
|
|
61
74
|
const tileMatrix = tileMatrices[z];
|
|
62
|
-
const {
|
|
63
|
-
|
|
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
|
-
|
|
76
|
-
|
|
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":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
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
|
-
*
|
|
29
|
+
* Bounding box defined by two named corners
|
|
29
30
|
*/
|
|
30
|
-
export
|
|
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
|
-
*
|
|
36
|
+
* Minimum bounding rectangle surrounding a 2D resource in the CRS indicated elsewhere
|
|
122
37
|
*/
|
|
123
|
-
export type
|
|
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":"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
|
|
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.
|
|
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",
|
|
@@ -39,24 +39,26 @@
|
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@luma.gl/core": "9.2.6",
|
|
41
41
|
"@luma.gl/shadertools": "9.2.6",
|
|
42
|
-
"@types/node": "^25.0
|
|
42
|
+
"@types/node": "^25.1.0",
|
|
43
43
|
"jsdom": "^27.4.0",
|
|
44
44
|
"typescript": "^5.9.3",
|
|
45
|
-
"vitest": "^4.0.
|
|
45
|
+
"vitest": "^4.0.18"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@deck.gl/core": "^9.2.
|
|
49
|
-
"@deck.gl/geo-layers": "^9.2.
|
|
50
|
-
"@deck.gl/layers": "^9.2.
|
|
51
|
-
"@deck.gl/mesh-layers": "^9.2.
|
|
52
|
-
"@luma.gl/core": "^9.2.
|
|
53
|
-
"@luma.gl/shadertools": "^9.2.
|
|
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/
|
|
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"
|