@developmentseed/deck.gl-raster 0.1.0-beta.5 → 0.1.0-beta.6
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/package.json +2 -2
- package/dist/index.cjs +0 -4
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -2
- package/dist/layer.d.ts +0 -72
- package/dist/layer.d.ts.map +0 -1
- package/dist/layer.js +0 -88
- package/dist/layer.js.map +0 -1
- package/dist/mesh.d.ts +0 -1
- package/dist/mesh.d.ts.map +0 -1
- package/dist/mesh.js +0 -2
- package/dist/mesh.js.map +0 -1
- package/dist/raster-debug-layer.d.ts +0 -51
- package/dist/raster-debug-layer.d.ts.map +0 -1
- package/dist/raster-debug-layer.js +0 -102
- package/dist/raster-debug-layer.js.map +0 -1
- package/dist/raster-tileset-bak/index.d.ts +0 -1
- package/dist/raster-tileset-bak/index.d.ts.map +0 -1
- package/dist/raster-tileset-bak/index.js +0 -2
- package/dist/raster-tileset-bak/index.js.map +0 -1
- package/dist/raster-tileset-bak/raster-tile-traversal.d.ts +0 -104
- package/dist/raster-tileset-bak/raster-tile-traversal.d.ts.map +0 -1
- package/dist/raster-tileset-bak/raster-tile-traversal.js +0 -390
- package/dist/raster-tileset-bak/raster-tile-traversal.js.map +0 -1
- package/dist/raster-tileset-bak/raster-tileset-2d.d.ts +0 -43
- package/dist/raster-tileset-bak/raster-tileset-2d.d.ts.map +0 -1
- package/dist/raster-tileset-bak/raster-tileset-2d.js +0 -288
- package/dist/raster-tileset-bak/raster-tileset-2d.js.map +0 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -2
- package/dist/src/index.js.map +0 -1
- package/dist/src/layer.d.ts +0 -1
- package/dist/src/layer.d.ts.map +0 -1
- package/dist/src/layer.js +0 -3
- package/dist/src/layer.js.map +0 -1
- package/dist/src/mesh.d.ts +0 -1
- package/dist/src/mesh.d.ts.map +0 -1
- package/dist/src/mesh.js +0 -2
- package/dist/src/mesh.js.map +0 -1
- package/dist/tests/placeholder.test.d.ts +0 -2
- package/dist/tests/placeholder.test.d.ts.map +0 -1
- package/dist/tests/placeholder.test.js +0 -7
- package/dist/tests/placeholder.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@developmentseed/deck.gl-raster",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.6",
|
|
4
4
|
"description": "Georeferenced image data visualization in deck.gl",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@math.gl/core": "^4.1.0",
|
|
52
52
|
"@math.gl/culling": "^4.1.0",
|
|
53
53
|
"@math.gl/web-mercator": "^4.1.0",
|
|
54
|
-
"@developmentseed/raster-reproject": "^0.1.0-beta.
|
|
54
|
+
"@developmentseed/raster-reproject": "^0.1.0-beta.6"
|
|
55
55
|
},
|
|
56
56
|
"volta": {
|
|
57
57
|
"extends": "../../package.json"
|
package/dist/index.cjs
DELETED
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
package/dist/index.d.cts
DELETED
package/dist/layer.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { CompositeLayer } from "@deck.gl/core";
|
|
2
|
-
import { SimpleMeshLayer } from "@deck.gl/mesh-layers";
|
|
3
|
-
import type { CompositeLayerProps } from "@deck.gl/core";
|
|
4
|
-
import type { SimpleMeshLayerProps } from "@deck.gl/mesh-layers";
|
|
5
|
-
import { RasterReprojector, type ReprojectionFns } from "@developmentseed/raster-reproject";
|
|
6
|
-
export interface RasterLayerProps extends CompositeLayerProps {
|
|
7
|
-
/**
|
|
8
|
-
* Width of the input raster image in pixels
|
|
9
|
-
*/
|
|
10
|
-
width: number;
|
|
11
|
-
/**
|
|
12
|
-
* Height of the input raster image in pixels
|
|
13
|
-
*/
|
|
14
|
-
height: number;
|
|
15
|
-
/**
|
|
16
|
-
* Reprojection functions for converting between pixel, input CRS, and output CRS coordinates
|
|
17
|
-
*/
|
|
18
|
-
reprojectionFns: ReprojectionFns;
|
|
19
|
-
/**
|
|
20
|
-
* Texture to apply to the mesh. Can be:
|
|
21
|
-
* - URL or Data URL string
|
|
22
|
-
* - WebGL2-compatible pixel source (Image, ImageData, Canvas, etc.)
|
|
23
|
-
* - Luma.gl Texture instance
|
|
24
|
-
* - Plain object: {width, height, data}
|
|
25
|
-
*/
|
|
26
|
-
texture?: SimpleMeshLayerProps["texture"];
|
|
27
|
-
/**
|
|
28
|
-
* Maximum reprojection error in pixels for mesh refinement.
|
|
29
|
-
* Lower values create denser meshes with higher accuracy.
|
|
30
|
-
* @default 1
|
|
31
|
-
*/
|
|
32
|
-
maxError?: number;
|
|
33
|
-
/**
|
|
34
|
-
* Material properties for lighting effects
|
|
35
|
-
*/
|
|
36
|
-
material?: SimpleMeshLayerProps["material"];
|
|
37
|
-
/**
|
|
38
|
-
* Whether to render in wireframe mode (for debugging)
|
|
39
|
-
* @default false
|
|
40
|
-
*/
|
|
41
|
-
wireframe?: boolean;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* RasterLayer renders georeferenced raster data with client-side reprojection.
|
|
45
|
-
*
|
|
46
|
-
* This is a composite layer that uses raster-reproject to generate an adaptive mesh
|
|
47
|
-
* that accurately represents the reprojected raster, then renders it using SimpleMeshLayer.
|
|
48
|
-
*/
|
|
49
|
-
export declare class RasterLayer extends CompositeLayer<RasterLayerProps> {
|
|
50
|
-
static layerName: string;
|
|
51
|
-
static defaultProps: {
|
|
52
|
-
maxError: number;
|
|
53
|
-
wireframe: boolean;
|
|
54
|
-
};
|
|
55
|
-
state: {
|
|
56
|
-
reprojector?: RasterReprojector;
|
|
57
|
-
mesh?: {
|
|
58
|
-
positions: Float32Array;
|
|
59
|
-
indices: Uint32Array;
|
|
60
|
-
texCoords: Float32Array;
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
initializeState(): void;
|
|
64
|
-
updateState({ props, oldProps, changeFlags, }: {
|
|
65
|
-
props: RasterLayerProps;
|
|
66
|
-
oldProps: RasterLayerProps;
|
|
67
|
-
changeFlags: any;
|
|
68
|
-
}): void;
|
|
69
|
-
_generateMesh(): void;
|
|
70
|
-
renderLayers(): SimpleMeshLayer<any, {}> | null;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=layer.d.ts.map
|
package/dist/layer.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAE5C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC/D,OAAgB,SAAS,SAAiB;IAC1C,OAAgB,YAAY;;;MAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,IAAI,CAAC,EAAE;YACL,SAAS,EAAE,YAAY,CAAC;YACxB,OAAO,EAAE,WAAW,CAAC;YACrB,SAAS,EAAE,YAAY,CAAC;SACzB,CAAC;KACH,CAAC;IAEO,eAAe,IAAI,IAAI;IAOvB,WAAW,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;QACD,KAAK,EAAE,gBAAgB,CAAC;QACxB,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,WAAW,EAAE,GAAG,CAAC;KAClB,GAAG,IAAI;IAcR,aAAa,IAAI,IAAI;IA8CrB,YAAY;CAwBb"}
|
package/dist/layer.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { CompositeLayer } from "@deck.gl/core";
|
|
2
|
-
import { SimpleMeshLayer } from "@deck.gl/mesh-layers";
|
|
3
|
-
import { RasterReprojector, } from "@developmentseed/raster-reproject";
|
|
4
|
-
const defaultProps = {
|
|
5
|
-
maxError: 1,
|
|
6
|
-
wireframe: false,
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* RasterLayer renders georeferenced raster data with client-side reprojection.
|
|
10
|
-
*
|
|
11
|
-
* This is a composite layer that uses raster-reproject to generate an adaptive mesh
|
|
12
|
-
* that accurately represents the reprojected raster, then renders it using SimpleMeshLayer.
|
|
13
|
-
*/
|
|
14
|
-
export class RasterLayer extends CompositeLayer {
|
|
15
|
-
static layerName = "RasterLayer";
|
|
16
|
-
static defaultProps = defaultProps;
|
|
17
|
-
initializeState() {
|
|
18
|
-
this.setState({
|
|
19
|
-
reprojector: undefined,
|
|
20
|
-
mesh: undefined,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
updateState({ props, oldProps, changeFlags, }) {
|
|
24
|
-
// Regenerate mesh if key properties change
|
|
25
|
-
const needsUpdate = changeFlags.dataChanged ||
|
|
26
|
-
props.width !== oldProps.width ||
|
|
27
|
-
props.height !== oldProps.height ||
|
|
28
|
-
props.reprojectionFns !== oldProps.reprojectionFns ||
|
|
29
|
-
props.maxError !== oldProps.maxError;
|
|
30
|
-
if (needsUpdate) {
|
|
31
|
-
this._generateMesh();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
_generateMesh() {
|
|
35
|
-
const { width, height, reprojectionFns, maxError = 1 } = this.props;
|
|
36
|
-
// Create reprojector instance
|
|
37
|
-
const reprojector = new RasterReprojector(reprojectionFns, width, height);
|
|
38
|
-
// Refine mesh to desired error threshold
|
|
39
|
-
reprojector.run(maxError);
|
|
40
|
-
// Extract mesh data
|
|
41
|
-
const numVertices = reprojector.uvs.length / 2;
|
|
42
|
-
const positions = new Float32Array(numVertices * 3);
|
|
43
|
-
const texCoords = new Float32Array(numVertices * 2);
|
|
44
|
-
// Convert UV coordinates and exact output positions to mesh format
|
|
45
|
-
for (let i = 0; i < numVertices; i++) {
|
|
46
|
-
const uvIdx = i * 2;
|
|
47
|
-
const posIdx = i * 3;
|
|
48
|
-
// Use exact output positions (already in output CRS)
|
|
49
|
-
positions[posIdx] = reprojector.exactOutputPositions[uvIdx]; // x
|
|
50
|
-
positions[posIdx + 1] = reprojector.exactOutputPositions[uvIdx + 1]; // y
|
|
51
|
-
positions[posIdx + 2] = 0; // z (flat on the ground)
|
|
52
|
-
// Texture coordinates (UV)
|
|
53
|
-
texCoords[uvIdx] = reprojector.uvs[uvIdx]; // u
|
|
54
|
-
texCoords[uvIdx + 1] = reprojector.uvs[uvIdx + 1]; // v
|
|
55
|
-
}
|
|
56
|
-
// Triangle indices are already in the correct format
|
|
57
|
-
const indices = new Uint32Array(reprojector.triangles);
|
|
58
|
-
this.setState({
|
|
59
|
-
reprojector,
|
|
60
|
-
mesh: {
|
|
61
|
-
positions,
|
|
62
|
-
indices,
|
|
63
|
-
texCoords,
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
renderLayers() {
|
|
68
|
-
const { mesh } = this.state;
|
|
69
|
-
const { texture, material, wireframe } = this.props;
|
|
70
|
-
if (!mesh) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
return new SimpleMeshLayer(this.getSubLayerProps({
|
|
74
|
-
id: "mesh",
|
|
75
|
-
data: [{ position: [0, 0, 0] }], // Single instance at origin since mesh positions are already in world coordinates
|
|
76
|
-
mesh: {
|
|
77
|
-
positions: { value: mesh.positions, size: 3 },
|
|
78
|
-
texCoords: { value: mesh.texCoords, size: 2 },
|
|
79
|
-
indices: { value: mesh.indices, size: 1 },
|
|
80
|
-
},
|
|
81
|
-
texture,
|
|
82
|
-
material,
|
|
83
|
-
wireframe,
|
|
84
|
-
getPosition: (d) => d.position,
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=layer.js.map
|
package/dist/layer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"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"}
|
package/dist/mesh.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=mesh.d.ts.map
|
package/dist/mesh.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../src/mesh.ts"],"names":[],"mappings":""}
|
package/dist/mesh.js
DELETED
package/dist/mesh.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mesh.js","sourceRoot":"","sources":["../src/mesh.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { CompositeLayerProps, UpdateParameters } from "@deck.gl/core";
|
|
2
|
-
import { CompositeLayer } from "@deck.gl/core";
|
|
3
|
-
import type { PolygonLayerProps } from "@deck.gl/layers";
|
|
4
|
-
import { PolygonLayer } from "@deck.gl/layers";
|
|
5
|
-
import type { ReprojectionFns } from "@developmentseed/raster-reproject";
|
|
6
|
-
import { RasterReprojector } from "@developmentseed/raster-reproject";
|
|
7
|
-
type ParsedTriangle = {
|
|
8
|
-
idx: number;
|
|
9
|
-
geom: number[][];
|
|
10
|
-
};
|
|
11
|
-
export interface RasterDebugLayerProps extends Omit<CompositeLayerProps, "data">, Pick<PolygonLayerProps, "getFillColor" | "getLineColor" | "lineWidthMinPixels" | "filled" | "stroked" | "opacity"> {
|
|
12
|
-
/**
|
|
13
|
-
* Width of the input raster image in pixels
|
|
14
|
-
*/
|
|
15
|
-
width: number;
|
|
16
|
-
/**
|
|
17
|
-
* Height of the input raster image in pixels
|
|
18
|
-
*/
|
|
19
|
-
height: number;
|
|
20
|
-
/**
|
|
21
|
-
* Reprojection functions for converting between pixel, input CRS, and output CRS coordinates
|
|
22
|
-
*/
|
|
23
|
-
reprojectionFns: ReprojectionFns;
|
|
24
|
-
/**
|
|
25
|
-
* Maximum reprojection error in pixels for mesh refinement.
|
|
26
|
-
* Lower values create denser meshes with higher accuracy.
|
|
27
|
-
* @default 0.125
|
|
28
|
-
*/
|
|
29
|
-
maxError?: number;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* RasterDebugLayer renders a PolygonLayer of the triangles that make up a
|
|
33
|
-
* generated mesh for raster reprojection.
|
|
34
|
-
*/
|
|
35
|
-
export declare class RasterDebugLayer extends CompositeLayer<RasterDebugLayerProps> {
|
|
36
|
-
static layerName: string;
|
|
37
|
-
static defaultProps: {
|
|
38
|
-
maxError: number;
|
|
39
|
-
debugMesh: boolean;
|
|
40
|
-
};
|
|
41
|
-
state: {
|
|
42
|
-
reprojector?: RasterReprojector;
|
|
43
|
-
triangles?: ParsedTriangle[];
|
|
44
|
-
};
|
|
45
|
-
initializeState(): void;
|
|
46
|
-
updateState(params: UpdateParameters<this>): void;
|
|
47
|
-
_generateMesh(): void;
|
|
48
|
-
renderLayers(): PolygonLayer<any, {}> | null;
|
|
49
|
-
}
|
|
50
|
-
export {};
|
|
51
|
-
//# sourceMappingURL=raster-debug-layer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"raster-debug-layer.d.ts","sourceRoot":"","sources":["../src/raster-debug-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE,KAAK,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAAC;AA2BxD,MAAM,WAAW,qBACf,SACE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EACjC,IAAI,CACF,iBAAiB,EACf,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,QAAQ,GACR,SAAS,GACT,SAAS,CACZ;IACH;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IACzE,OAAgB,SAAS,SAAsB;IAC/C,OAAgB,YAAY;;;MAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;KAC9B,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAiBnD,aAAa,IAAI,IAAI;IAkBrB,YAAY;CAoBb"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { CompositeLayer } from "@deck.gl/core";
|
|
2
|
-
import { PolygonLayer } from "@deck.gl/layers";
|
|
3
|
-
import { RasterReprojector } from "@developmentseed/raster-reproject";
|
|
4
|
-
const DEFAULT_MAX_ERROR = 0.125;
|
|
5
|
-
const DEBUG_COLORS = [
|
|
6
|
-
[252, 73, 163], // pink
|
|
7
|
-
[255, 51, 204], // magenta-pink
|
|
8
|
-
[204, 102, 255], // purple-ish
|
|
9
|
-
[153, 51, 255], // deep purple
|
|
10
|
-
[102, 204, 255], // sky blue
|
|
11
|
-
[51, 153, 255], // clear blue
|
|
12
|
-
[102, 255, 204], // teal
|
|
13
|
-
[51, 255, 170], // aqua-teal
|
|
14
|
-
[0, 255, 0], // lime green
|
|
15
|
-
[51, 204, 51], // stronger green
|
|
16
|
-
[255, 204, 102], // light orange
|
|
17
|
-
[255, 179, 71], // golden-orange
|
|
18
|
-
[255, 102, 102], // salmon
|
|
19
|
-
[255, 80, 80], // red-salmon
|
|
20
|
-
[255, 0, 0], // red
|
|
21
|
-
[204, 0, 0], // crimson
|
|
22
|
-
[255, 128, 0], // orange
|
|
23
|
-
[255, 153, 51], // bright orange
|
|
24
|
-
[255, 255, 102], // yellow
|
|
25
|
-
[255, 255, 51], // lemon
|
|
26
|
-
[0, 255, 255], // turquoise
|
|
27
|
-
[0, 204, 255], // cyan
|
|
28
|
-
];
|
|
29
|
-
const defaultProps = {
|
|
30
|
-
maxError: DEFAULT_MAX_ERROR,
|
|
31
|
-
debugMesh: false,
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* RasterDebugLayer renders a PolygonLayer of the triangles that make up a
|
|
35
|
-
* generated mesh for raster reprojection.
|
|
36
|
-
*/
|
|
37
|
-
export class RasterDebugLayer extends CompositeLayer {
|
|
38
|
-
static layerName = "RasterDebugLayer";
|
|
39
|
-
static defaultProps = defaultProps;
|
|
40
|
-
initializeState() {
|
|
41
|
-
this.setState({});
|
|
42
|
-
}
|
|
43
|
-
updateState(params) {
|
|
44
|
-
super.updateState(params);
|
|
45
|
-
const { props, oldProps } = params;
|
|
46
|
-
// Regenerate mesh if key properties change
|
|
47
|
-
const needsUpdate = props.width !== oldProps.width ||
|
|
48
|
-
props.height !== oldProps.height ||
|
|
49
|
-
props.reprojectionFns !== oldProps.reprojectionFns ||
|
|
50
|
-
props.maxError !== oldProps.maxError;
|
|
51
|
-
if (needsUpdate) {
|
|
52
|
-
this._generateMesh();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
_generateMesh() {
|
|
56
|
-
const { width, height, reprojectionFns, maxError = DEFAULT_MAX_ERROR, } = this.props;
|
|
57
|
-
const reprojector = new RasterReprojector(reprojectionFns, width, height);
|
|
58
|
-
reprojector.run(maxError);
|
|
59
|
-
const triangles = reprojectorToTriangles(reprojector);
|
|
60
|
-
this.setState({
|
|
61
|
-
reprojector,
|
|
62
|
-
triangles,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
renderLayers() {
|
|
66
|
-
const { triangles } = this.state;
|
|
67
|
-
if (!triangles) {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
return new PolygonLayer(this.getSubLayerProps({
|
|
71
|
-
id: "polygon",
|
|
72
|
-
data: triangles,
|
|
73
|
-
getPolygon: (d) => d.geom,
|
|
74
|
-
getFillColor: (d) => DEBUG_COLORS[d.idx % DEBUG_COLORS.length],
|
|
75
|
-
getLineColor: [0, 0, 0],
|
|
76
|
-
getLineWidth: 0,
|
|
77
|
-
lineWidthMinPixels: 1,
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function reprojectorToTriangles(reprojector) {
|
|
82
|
-
const positions = reprojector.exactOutputPositions;
|
|
83
|
-
const triangles = reprojector.triangles;
|
|
84
|
-
const trianglePolygons = [];
|
|
85
|
-
for (let triangleIdx = 0; triangleIdx < triangles.length / 3; ++triangleIdx) {
|
|
86
|
-
const a = triangles[triangleIdx * 3];
|
|
87
|
-
const b = triangles[triangleIdx * 3 + 1];
|
|
88
|
-
const c = triangles[triangleIdx * 3 + 2];
|
|
89
|
-
const coords = [
|
|
90
|
-
[positions[a * 2], positions[a * 2 + 1]],
|
|
91
|
-
[positions[b * 2], positions[b * 2 + 1]],
|
|
92
|
-
[positions[c * 2], positions[c * 2 + 1]],
|
|
93
|
-
[positions[a * 2], positions[a * 2 + 1]],
|
|
94
|
-
];
|
|
95
|
-
trianglePolygons.push({
|
|
96
|
-
idx: triangleIdx,
|
|
97
|
-
geom: coords,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return trianglePolygons;
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=raster-debug-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"raster-debug-layer.js","sourceRoot":"","sources":["../src/raster-debug-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/raster-tileset-bak/index.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster-tileset-bak/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file implements tile traversal for generic 2D tilesets defined by COG
|
|
3
|
-
* tile layouts.
|
|
4
|
-
*
|
|
5
|
-
* The main algorithm works as follows:
|
|
6
|
-
* 1. Start at the root tile(s) (z=0, covers the entire image, but not
|
|
7
|
-
* necessarily the whole world)
|
|
8
|
-
* 2. Test if each tile is visible using viewport frustum culling
|
|
9
|
-
* 3. For visible tiles, compute distance-based LOD (Level of Detail)
|
|
10
|
-
* 4. If LOD is insufficient, recursively subdivide into 4 child tiles
|
|
11
|
-
* 5. Select tiles at appropriate zoom levels based on distance from camera
|
|
12
|
-
*
|
|
13
|
-
* The result is a set of tiles at varying zoom levels that efficiently
|
|
14
|
-
* cover the visible area with appropriate detail.
|
|
15
|
-
*/
|
|
16
|
-
import { Viewport } from "@deck.gl/core";
|
|
17
|
-
import { CullingVolume } from "@math.gl/culling";
|
|
18
|
-
import type { TileMatrixSet, TileMatrix, TileIndex, ZRange } from "../raster-tileset/types.js";
|
|
19
|
-
/**
|
|
20
|
-
* Raster Tile Node - similar to OSMNode but for a generic raster tileset's
|
|
21
|
-
* tile structure.
|
|
22
|
-
*
|
|
23
|
-
* Represents a single tile in the COG internal tiling pyramid.
|
|
24
|
-
*
|
|
25
|
-
* COG tile nodes use the following coordinate system:
|
|
26
|
-
*
|
|
27
|
-
* - x: tile column (0 to TileMatrix.tilesX, left to right)
|
|
28
|
-
* - y: tile row (0 to TileMatrix.tilesY, top to bottom)
|
|
29
|
-
* - z: overview level. This uses TileMatrixSet ordering where: 0 = coarsest, higher = finer
|
|
30
|
-
*/
|
|
31
|
-
export declare class RasterTileNode {
|
|
32
|
-
/** Index across a row */
|
|
33
|
-
x: number;
|
|
34
|
-
/** Index down a column */
|
|
35
|
-
y: number;
|
|
36
|
-
/** TileMatrixSet-style zoom index (higher = finer detail) */
|
|
37
|
-
z: number;
|
|
38
|
-
private metadata;
|
|
39
|
-
/**
|
|
40
|
-
* Flag indicating whether any descendant of this tile is visible.
|
|
41
|
-
*
|
|
42
|
-
* Used to prevent loading parent tiles when children are visible (avoids
|
|
43
|
-
* overdraw).
|
|
44
|
-
*/
|
|
45
|
-
private childVisible?;
|
|
46
|
-
/**
|
|
47
|
-
* Flag indicating this tile should be rendered
|
|
48
|
-
*
|
|
49
|
-
* Set to `true` when this is the appropriate LOD for its distance from camera.
|
|
50
|
-
*/
|
|
51
|
-
private selected?;
|
|
52
|
-
/** A cache of the children of this node. */
|
|
53
|
-
private _children?;
|
|
54
|
-
constructor(x: number, y: number, z: number, metadata: TileMatrixSet);
|
|
55
|
-
/** Get overview info for this tile's z level */
|
|
56
|
-
get overview(): TileMatrix;
|
|
57
|
-
/** Get the children of this node. */
|
|
58
|
-
get children(): RasterTileNode[];
|
|
59
|
-
/**
|
|
60
|
-
* Update tile visibility using frustum culling
|
|
61
|
-
* This follows the pattern from OSMNode
|
|
62
|
-
*/
|
|
63
|
-
update(params: {
|
|
64
|
-
viewport: Viewport;
|
|
65
|
-
project: ((xyz: number[]) => number[]) | null;
|
|
66
|
-
cullingVolume: CullingVolume;
|
|
67
|
-
elevationBounds: ZRange;
|
|
68
|
-
/** Minimum (coarsest) COG overview level */
|
|
69
|
-
minZ: number;
|
|
70
|
-
/** Maximum (finest) COG overview level */
|
|
71
|
-
maxZ?: number;
|
|
72
|
-
}): boolean;
|
|
73
|
-
/**
|
|
74
|
-
* Collect all tiles marked as selected in the tree.
|
|
75
|
-
* Recursively traverses the entire tree and gathers tiles where selected=true.
|
|
76
|
-
*
|
|
77
|
-
* @param result - Accumulator array for selected tiles
|
|
78
|
-
* @returns Array of selected OSMNode tiles
|
|
79
|
-
*/
|
|
80
|
-
getSelected(result?: RasterTileNode[]): RasterTileNode[];
|
|
81
|
-
/**
|
|
82
|
-
* Calculate the 3D bounding volume for this tile in deck.gl's common
|
|
83
|
-
* coordinate space for frustum culling.
|
|
84
|
-
*
|
|
85
|
-
*/
|
|
86
|
-
getBoundingVolume(zRange: ZRange, project: ((xyz: number[]) => number[]) | null): import("@math.gl/culling").OrientedBoundingBox;
|
|
87
|
-
/**
|
|
88
|
-
* Convert COG coordinates to lng/lat
|
|
89
|
-
* This is a placeholder - needs proper projection library (proj4js)
|
|
90
|
-
*/
|
|
91
|
-
private cogCoordsToLngLat;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Get tile indices visible in viewport
|
|
95
|
-
* Uses frustum culling similar to OSM implementation
|
|
96
|
-
*
|
|
97
|
-
* Overviews follow TileMatrixSet ordering: index 0 = coarsest, higher = finer
|
|
98
|
-
*/
|
|
99
|
-
export declare function getTileIndices(metadata: TileMatrixSet, opts: {
|
|
100
|
-
viewport: Viewport;
|
|
101
|
-
maxZ: number;
|
|
102
|
-
zRange: ZRange | null;
|
|
103
|
-
}): TileIndex[];
|
|
104
|
-
//# sourceMappingURL=raster-tile-traversal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"raster-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/raster-tileset-bak/raster-tile-traversal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,QAAQ,EAET,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,EACP,MAAM,4BAA4B,CAAC;AA8CpC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,yBAAyB;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,0BAA0B;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IAEV,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAC,CAAU;IAE/B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAU;IAE3B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAmB;gBAEzB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAOpE,gDAAgD;IAChD,IAAI,QAAQ,IAAI,UAAU,CAEzB;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI,cAAc,EAAE,CAsC/B;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QAC9C,aAAa,EAAE,aAAa,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,4CAA4C;QAC5C,IAAI,EAAE,MAAM,CAAC;QACb,0CAA0C;QAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO;IAiHX;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,GAAE,cAAc,EAAO,GAAG,cAAc,EAAE;IAY5D;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,IAAI;IAwH/C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAI1B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE;IACJ,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GACA,SAAS,EAAE,CAmEb"}
|