@gisatcz/deckgl-geolib 1.10.1-dev.0 → 1.10.1-dev.1
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/cjs/index.js +911 -23
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +4 -4
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/cjs/types/cogtiles/cogtiles.d.ts +2 -1
- package/dist/cjs/types/geoimage/delatin/index.d.ts +23 -0
- package/dist/cjs/types/geoimage/geoimage.d.ts +51 -2
- package/dist/cjs/types/geoimage/helpers/skirt.d.ts +18 -0
- package/dist/cjs/types/loaders/CogTerrainLoader.d.ts +3 -0
- package/dist/cjs/types/terrain-layer.d.ts +83 -0
- package/dist/esm/index.js +911 -23
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +4 -4
- package/dist/esm/index.min.js.map +1 -1
- package/dist/esm/types/cogtiles/cogtiles.d.ts +2 -1
- package/dist/esm/types/geoimage/delatin/index.d.ts +23 -0
- package/dist/esm/types/geoimage/geoimage.d.ts +51 -2
- package/dist/esm/types/geoimage/helpers/skirt.d.ts +18 -0
- package/dist/esm/types/loaders/CogTerrainLoader.d.ts +3 -0
- package/dist/esm/types/terrain-layer.d.ts +83 -0
- package/package.json +2 -1
- package/src/cogterrainlayer/CogTerrainLayer.ts +1 -1
- package/src/cogtiles/cogtiles.ts +7 -2
- package/src/geoimage/delatin/index.ts +495 -0
- package/src/geoimage/geoimage.ts +211 -22
- package/src/geoimage/helpers/skirt.ts +171 -0
- package/src/loaders/CogTerrainLoader.ts +55 -0
- package/src/terrain-layer.ts +504 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Tiff, TiffImage } from '@cogeotiff/core';
|
|
2
2
|
import LZWDecoder from './lzw';
|
|
3
3
|
import GeoImage, { GeoImageOptions } from '../geoimage/geoimage.ts';
|
|
4
|
+
export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
|
|
4
5
|
declare class CogTiles {
|
|
5
6
|
cog: Tiff;
|
|
6
7
|
zoomRange: number[];
|
|
@@ -21,7 +22,7 @@ declare class CogTiles {
|
|
|
21
22
|
getResolutionFromZoomLevel(tileSize: number, z: number): number;
|
|
22
23
|
getZoomLevelFromResolution(tileSize: number, resolution: number): number;
|
|
23
24
|
getLatLon(input: number[]): number[];
|
|
24
|
-
getTile(x: number, y: number, z: number): Promise<string>;
|
|
25
|
+
getTile(x: number, y: number, z: number, bounds: Bounds): Promise<string>;
|
|
25
26
|
getFormat(sampleFormat: number[] | number, bitsPerSample: number[] | number): any;
|
|
26
27
|
getNoDataValue(tags: any): number;
|
|
27
28
|
testCog(): Promise<void>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export default class Delatin {
|
|
2
|
+
constructor(data: any, width: any, height?: any);
|
|
3
|
+
run(maxError?: number): void;
|
|
4
|
+
refine(): void;
|
|
5
|
+
getMaxError(): any;
|
|
6
|
+
getRMSD(): number;
|
|
7
|
+
heightAt(x: any, y: any): any;
|
|
8
|
+
_flush(): void;
|
|
9
|
+
_findCandidate(p0x: any, p0y: any, p1x: any, p1y: any, p2x: any, p2y: any, t: any): void;
|
|
10
|
+
_step(): void;
|
|
11
|
+
_addPoint(x: any, y: any): number;
|
|
12
|
+
_addTriangle(a: any, b: any, c: any, ab: any, bc: any, ca: any, e?: any): any;
|
|
13
|
+
_legalize(a: any): void;
|
|
14
|
+
_handleCollinear(pn: any, a: any): void;
|
|
15
|
+
_queuePush(t: any, error: any, rms: any): void;
|
|
16
|
+
_queuePop(): any;
|
|
17
|
+
_queuePopBack(): any;
|
|
18
|
+
_queueRemove(t: any): void;
|
|
19
|
+
_queueLess(i: any, j: any): boolean;
|
|
20
|
+
_queueSwap(i: any, j: any): void;
|
|
21
|
+
_queueUp(j0: any): void;
|
|
22
|
+
_queueDown(i0: any, n: any): boolean;
|
|
23
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { GeoTIFFImage } from 'geotiff';
|
|
2
2
|
import chroma from 'chroma-js';
|
|
3
|
+
export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
|
|
3
4
|
export type ClampToTerrainOptions = {
|
|
4
5
|
terrainDrawMode?: string;
|
|
5
6
|
};
|
|
@@ -42,12 +43,60 @@ export default class GeoImage {
|
|
|
42
43
|
width: number;
|
|
43
44
|
height: number;
|
|
44
45
|
rasters: any[];
|
|
45
|
-
|
|
46
|
+
bounds: Bounds;
|
|
47
|
+
}, options: GeoImageOptions): Promise<string | {
|
|
48
|
+
loaderData: {
|
|
49
|
+
header: {};
|
|
50
|
+
};
|
|
51
|
+
header: {
|
|
52
|
+
vertexCount: any;
|
|
53
|
+
boundingBox: any;
|
|
54
|
+
};
|
|
55
|
+
mode: number;
|
|
56
|
+
indices: {
|
|
57
|
+
value: Uint32Array;
|
|
58
|
+
size: number;
|
|
59
|
+
};
|
|
60
|
+
attributes: {
|
|
61
|
+
POSITION: {
|
|
62
|
+
value: Float32Array;
|
|
63
|
+
size: number;
|
|
64
|
+
};
|
|
65
|
+
TEXCOORD_0: {
|
|
66
|
+
value: Float32Array;
|
|
67
|
+
size: number;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
}>;
|
|
46
71
|
getHeightmap(input: string | {
|
|
72
|
+
bounds: Bounds;
|
|
47
73
|
width: number;
|
|
48
74
|
height: number;
|
|
49
75
|
rasters: any[];
|
|
50
|
-
}, options: GeoImageOptions): Promise<
|
|
76
|
+
}, options: GeoImageOptions): Promise<{
|
|
77
|
+
loaderData: {
|
|
78
|
+
header: {};
|
|
79
|
+
};
|
|
80
|
+
header: {
|
|
81
|
+
vertexCount: any;
|
|
82
|
+
boundingBox: any;
|
|
83
|
+
};
|
|
84
|
+
mode: number;
|
|
85
|
+
indices: {
|
|
86
|
+
value: Uint32Array;
|
|
87
|
+
size: number;
|
|
88
|
+
};
|
|
89
|
+
attributes: {
|
|
90
|
+
POSITION: {
|
|
91
|
+
value: Float32Array;
|
|
92
|
+
size: number;
|
|
93
|
+
};
|
|
94
|
+
TEXCOORD_0: {
|
|
95
|
+
value: Float32Array;
|
|
96
|
+
size: number;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
}>;
|
|
51
100
|
getBitmap(input: string | {
|
|
52
101
|
width: number;
|
|
53
102
|
height: number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type EdgeIndices = {
|
|
2
|
+
westIndices: number[];
|
|
3
|
+
northIndices: number[];
|
|
4
|
+
eastIndices: number[];
|
|
5
|
+
southIndices: number[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Add skirt to existing mesh
|
|
9
|
+
* @param {object} attributes - POSITION and TEXCOOD_0 attributes data
|
|
10
|
+
* @param {any} triangles - indices array of the mesh geometry
|
|
11
|
+
* @param skirtHeight - height of the skirt geometry
|
|
12
|
+
* @param outsideIndices - edge indices from quantized mesh data
|
|
13
|
+
* @returns - geometry data with added skirt
|
|
14
|
+
*/
|
|
15
|
+
export declare function addSkirt(attributes: any, triangles: any, skirtHeight: number, outsideIndices?: EdgeIndices): {
|
|
16
|
+
attributes: any;
|
|
17
|
+
triangles: any;
|
|
18
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Color, CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList, Material, TextureSource, UpdateParameters } from '@deck.gl/core';
|
|
2
|
+
import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
|
|
3
|
+
import type { MeshAttributes } from '@loaders.gl/schema';
|
|
4
|
+
import { TileLayerProps, GeoBoundingBox, _TileLoadProps as TileLoadProps, _Tile2DHeader as Tile2DHeader, NonGeoBoundingBox } from '@deck.gl/geo-layers';
|
|
5
|
+
import { GeoImageOptions } from './geoimage/geoimage.ts';
|
|
6
|
+
import CogTiles from './cogtiles/cogtiles.ts';
|
|
7
|
+
export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
|
|
8
|
+
export type TileBoundingBox = NonGeoBoundingBox | GeoBoundingBox;
|
|
9
|
+
export type ZRange = [minZ: number, maxZ: number];
|
|
10
|
+
export type URLTemplate = string | string[] | null;
|
|
11
|
+
export declare const urlType: {
|
|
12
|
+
type: "object";
|
|
13
|
+
value: URLTemplate;
|
|
14
|
+
validate: (value: any, propType: any) => boolean;
|
|
15
|
+
equal: (value1: any, value2: any) => boolean;
|
|
16
|
+
};
|
|
17
|
+
type ElevationDecoder = {
|
|
18
|
+
rScaler: number;
|
|
19
|
+
gScaler: number;
|
|
20
|
+
bScaler: number;
|
|
21
|
+
offset: number;
|
|
22
|
+
};
|
|
23
|
+
type TerrainLoadProps = {
|
|
24
|
+
bounds: Bounds;
|
|
25
|
+
elevationData: string | null;
|
|
26
|
+
elevationDecoder: ElevationDecoder;
|
|
27
|
+
meshMaxError: number;
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
};
|
|
30
|
+
type MeshAndTexture = [MeshAttributes | null, TextureSource | null];
|
|
31
|
+
/** All properties supported by TerrainLayer */
|
|
32
|
+
export type TerrainLayerProps = _TerrainLayerProps & TileLayerProps<MeshAndTexture> & CompositeLayerProps;
|
|
33
|
+
/** Props added by the TerrainLayer */
|
|
34
|
+
type _TerrainLayerProps = {
|
|
35
|
+
/** Image url that encodes height data. * */
|
|
36
|
+
elevationData: URLTemplate;
|
|
37
|
+
/** Image url to use as texture. * */
|
|
38
|
+
texture?: URLTemplate;
|
|
39
|
+
/** Martini error tolerance in meters, smaller number -> more detailed mesh. * */
|
|
40
|
+
meshMaxError?: number;
|
|
41
|
+
/** Bounding box of the terrain image, [minX, minY, maxX, maxY] in world coordinates. * */
|
|
42
|
+
bounds?: Bounds | null;
|
|
43
|
+
/** Color to use if texture is unavailable. * */
|
|
44
|
+
color?: Color;
|
|
45
|
+
/** Object to decode height data, from (r, g, b) to height in meters. * */
|
|
46
|
+
elevationDecoder?: ElevationDecoder;
|
|
47
|
+
/** Whether to render the mesh in wireframe mode. * */
|
|
48
|
+
wireframe?: boolean;
|
|
49
|
+
/** Material props for lighting effect. * */
|
|
50
|
+
material?: Material;
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Use `loadOptions.terrain.workerUrl` instead
|
|
53
|
+
*/
|
|
54
|
+
workerUrl?: string;
|
|
55
|
+
};
|
|
56
|
+
/** Render mesh surfaces from height map images. */
|
|
57
|
+
export default class TerrainLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_TerrainLayerProps & Required<TileLayerProps<MeshAndTexture>>>> {
|
|
58
|
+
static defaultProps: DefaultProps<TerrainLayerProps>;
|
|
59
|
+
static layerName: string;
|
|
60
|
+
terrainCogTiles: CogTiles;
|
|
61
|
+
terrainUrl: string;
|
|
62
|
+
minZoom: number;
|
|
63
|
+
maxZoom: number;
|
|
64
|
+
state: {
|
|
65
|
+
isTiled?: boolean;
|
|
66
|
+
terrain?: MeshAttributes;
|
|
67
|
+
zRange?: ZRange | null;
|
|
68
|
+
};
|
|
69
|
+
constructor(props: TerrainLayerProps & ExtraPropsT, terrainOptions: GeoImageOptions);
|
|
70
|
+
initializeState(context: any): Promise<void>;
|
|
71
|
+
init(terrainUrl: string): Promise<void>;
|
|
72
|
+
updateState({ props, oldProps }: UpdateParameters<this>): void;
|
|
73
|
+
loadTerrain({ elevationData, bounds, elevationDecoder, meshMaxError, signal, }: TerrainLoadProps): Promise<MeshAttributes> | null;
|
|
74
|
+
getTiledTerrainData(tile: TileLoadProps): Promise<MeshAndTexture>;
|
|
75
|
+
renderSubLayers(props: TileLayerProps<MeshAndTexture> & {
|
|
76
|
+
id: string;
|
|
77
|
+
data: MeshAndTexture;
|
|
78
|
+
tile: Tile2DHeader<MeshAndTexture>;
|
|
79
|
+
}): SimpleMeshLayer<any, {}>;
|
|
80
|
+
onViewportLoad(tiles?: Tile2DHeader<MeshAndTexture>[]): void;
|
|
81
|
+
renderLayers(): Layer | null | LayersList;
|
|
82
|
+
}
|
|
83
|
+
export {};
|