@gisatcz/deckgl-geolib 1.12.0-dev.5 → 2.1.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +69 -64
  2. package/dist/cjs/index.js +5252 -4865
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/index.min.js +3 -3
  5. package/dist/cjs/index.min.js.map +1 -1
  6. package/dist/{esm/types/cogtiles/cogtiles.d.ts → cjs/types/core/CogTiles.d.ts} +17 -47
  7. package/dist/cjs/types/{geoimage/geoimage.d.ts → core/GeoImage.d.ts} +7 -6
  8. package/dist/cjs/types/core/index.d.ts +3 -0
  9. package/dist/cjs/types/index.d.ts +3 -11
  10. package/dist/{esm/types/cogbitmaplayer → cjs/types/layers}/CogBitmapLayer.d.ts +6 -5
  11. package/dist/cjs/types/{cogterrainlayer → layers}/CogTerrainLayer.d.ts +15 -8
  12. package/dist/cjs/types/layers/index.d.ts +2 -0
  13. package/dist/esm/index.js +5248 -4864
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/index.min.js +3 -3
  16. package/dist/esm/index.min.js.map +1 -1
  17. package/dist/{cjs/types/cogtiles/cogtiles.d.ts → esm/types/core/CogTiles.d.ts} +17 -47
  18. package/dist/esm/types/{geoimage/geoimage.d.ts → core/GeoImage.d.ts} +7 -6
  19. package/dist/esm/types/core/index.d.ts +3 -0
  20. package/dist/esm/types/index.d.ts +3 -11
  21. package/dist/{cjs/types/cogbitmaplayer → esm/types/layers}/CogBitmapLayer.d.ts +6 -5
  22. package/dist/esm/types/{cogterrainlayer → layers}/CogTerrainLayer.d.ts +15 -8
  23. package/dist/esm/types/layers/index.d.ts +2 -0
  24. package/package.json +67 -26
  25. package/.eslintignore +0 -2
  26. package/.eslintrc.cjs +0 -3
  27. package/CHANGELOG.md +0 -166
  28. package/rollup.config.mjs +0 -77
  29. package/src/cogbitmaplayer/CogBitmapLayer.ts +0 -337
  30. package/src/cogbitmaplayer/README.md +0 -113
  31. package/src/cogterrainlayer/CogTerrainLayer.ts +0 -445
  32. package/src/cogterrainlayer/README.md +0 -118
  33. package/src/cogtiles/README.md +0 -72
  34. package/src/cogtiles/cogtiles.ts +0 -483
  35. package/src/cogtiles/lzw.js +0 -256
  36. package/src/geoimage/README.md +0 -129
  37. package/src/geoimage/delatin/index.ts +0 -495
  38. package/src/geoimage/geoimage.ts +0 -602
  39. package/src/geoimage/helpers/skirt.ts +0 -171
  40. package/src/index.ts +0 -11
  41. package/src/utilities/tileurls.ts +0 -21
  42. package/tsconfig.json +0 -6
  43. /package/dist/cjs/types/{geoimage → core}/delatin/index.d.ts +0 -0
  44. /package/dist/cjs/types/{geoimage → core}/helpers/skirt.d.ts +0 -0
  45. /package/dist/cjs/types/{utilities → utils}/tileurls.d.ts +0 -0
  46. /package/dist/esm/types/{geoimage → core}/delatin/index.d.ts +0 -0
  47. /package/dist/esm/types/{geoimage → core}/helpers/skirt.d.ts +0 -0
  48. /package/dist/esm/types/{utilities → utils}/tileurls.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { GeoTIFF, GeoTIFFImage } from 'geotiff';
2
- import GeoImage, { GeoImageOptions } from '../geoimage/geoimage.ts';
2
+ import GeoImage, { GeoImageOptions } from './GeoImage';
3
3
  export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
4
4
  declare class CogTiles {
5
5
  cog: GeoTIFF;
@@ -8,17 +8,16 @@ declare class CogTiles {
8
8
  cogOrigin: number[];
9
9
  zoomRange: number[];
10
10
  tileSize: number;
11
- bounds: Bounds;
12
- loaded: boolean;
11
+ bounds: [number, number, number, number];
13
12
  geo: GeoImage;
14
13
  options: GeoImageOptions;
15
14
  constructor(options: GeoImageOptions);
16
15
  initializeCog(url: string): Promise<void>;
17
16
  getZoomRange(): number[];
18
- calculateZoomRange(img: GeoTIFFImage, imgCount: number): number[];
19
- calculateBoundsAsLatLon(image: GeoTIFFImage): [number, number, number, number];
17
+ calculateZoomRange(tileSize: number, resolution: number, imgCount: number): number[];
18
+ calculateBoundsAsLatLon(bbox: number[]): [number, number, number, number];
20
19
  getZoomLevelFromResolution(tileSize: number, resolution: number): number;
21
- getBoundsAsLatLon(): Bounds;
20
+ getBoundsAsLatLon(): [number, number, number, number];
22
21
  getLatLon(input: number[]): number[];
23
22
  /**
24
23
  * Builds lookup tables for zoom levels and estimated resolutions from a Cloud Optimized GeoTIFF (COG) object.
@@ -35,7 +34,7 @@ declare class CogTiles {
35
34
  * - The first array (`zoomLookup`) maps each image index to its computed zoom level.
36
35
  * - The second array (`resolutionLookup`) maps each image index to its estimated resolution (m/pixel).
37
36
  */
38
- buildCogZoomResolutionLookup(cog: any): Promise<any[][]>;
37
+ buildCogZoomResolutionLookup(cog: GeoTIFF): Promise<any[][]>;
39
38
  /**
40
39
  * Determines the appropriate image index from the Cloud Optimized GeoTIFF (COG)
41
40
  * that best matches a given zoom level.
@@ -48,7 +47,11 @@ declare class CogTiles {
48
47
  * @returns {number} The index of the image in the COG that best matches the specified zoom level.
49
48
  */
50
49
  getImageIndexForZoomLevel(zoom: any): number;
51
- getTileFromImage(tileX: any, tileY: any, zoom: any): Promise<any[][] | import("geotiff").ReadRasterResult[]>;
50
+ getTileFromImage(tileX: any, tileY: any, zoom: any): Promise<any[][] | Float32Array<ArrayBuffer>[] | import("geotiff").TypedArrayWithDimensions[]>;
51
+ /**
52
+ * Creates a blank tile buffer filled with the "No Data" value.
53
+ */
54
+ createEmptyTile(): Float32Array<ArrayBuffer>;
52
55
  getTile(x: number, y: number, z: number, bounds: Bounds, meshMaxError: number): Promise<string | {
53
56
  loaderData: {
54
57
  header: {};
@@ -59,16 +62,16 @@ declare class CogTiles {
59
62
  };
60
63
  mode: number;
61
64
  indices: {
62
- value: Uint32Array;
65
+ value: Uint32Array<ArrayBuffer>;
63
66
  size: number;
64
67
  };
65
68
  attributes: {
66
69
  POSITION: {
67
- value: Float32Array;
70
+ value: Float32Array<ArrayBuffer>;
68
71
  size: number;
69
72
  };
70
73
  TEXCOORD_0: {
71
- value: Float32Array;
74
+ value: Float32Array<ArrayBuffer>;
72
75
  size: number;
73
76
  };
74
77
  };
@@ -80,7 +83,7 @@ declare class CogTiles {
80
83
  * @param {GeoTIFFImage} image - A GeoTIFF.js image.
81
84
  * @returns {Promise<string>} - A string representing the data type.
82
85
  */
83
- getDataTypeFromTags(image: any): string;
86
+ getDataTypeFromTags(fileDirectory: any): Promise<string>;
84
87
  /**
85
88
  * Extracts the noData value from a GeoTIFF.js image.
86
89
  * Returns the noData value as a number (including NaN) if available, otherwise undefined.
@@ -88,40 +91,7 @@ declare class CogTiles {
88
91
  * @param {GeoTIFFImage} image - The GeoTIFF.js image.
89
92
  * @returns {number|undefined} The noData value, possibly NaN, or undefined if not set or invalid.
90
93
  */
91
- getNoDataValue(image: any): number;
92
- /**
93
- * Retrieves the number of channels (samples per pixel) in a GeoTIFF image.
94
- *
95
- * @param {GeoTIFFImage} image - A GeoTIFFImage object from which to extract the number of channels.
96
- * @returns {number} The number of channels in the image.
97
- */
98
- getNumberOfChannels(image: any): any;
99
- /**
100
- * Calculates the intersection between a tile bounding box and a COG bounding box,
101
- * returning the intersection window in image pixel space (relative to COG offsets),
102
- * along with how much blank space (nodata) appears on the left and top of the tile.
103
- *
104
- * @param {number[]} tileBbox - Tile bounding box: [minX, minY, maxX, maxY]
105
- * @param {number[]} cogBbox - COG bounding box: [minX, minY, maxX, maxY]
106
- * @param {number} offsetXPixel - X offset of the COG origin in pixel space
107
- * @param {number} offsetYPixel - Y offset of the COG origin in pixel space
108
- * @param {number} tileSize - Size of the tile in pixels (default: 256)
109
- * @returns {[number, number, number[] | null, number, number]}
110
- * An array containing:
111
- * - width of the intersection
112
- * - height of the intersection
113
- * - pixel-space window: [startX, startY, endX, endY] or null if no overlap
114
- * - missingLeft: padding pixels on the left
115
- * - missingTop: padding pixels on the top
116
- */
117
- getIntersectionBBox(tileBbox: any, cogBbox: any, offsetXPixel?: number, offsetYPixel?: number, tileSize?: number): any[];
118
- /**
119
- * Retrieves the PlanarConfiguration value from a GeoTIFF image.
120
- *
121
- * @param {GeoTIFFImage} image - The GeoTIFF image object.
122
- * @returns {number} The PlanarConfiguration value (1 for Chunky format, 2 for Planar format).
123
- */
124
- getPlanarConfiguration(image: any): any;
94
+ getNoDataValue(image: GeoTIFFImage): number;
125
95
  /**
126
96
  * Creates a tile buffer of the specified size using a typed array corresponding to the provided data type.
127
97
  *
@@ -129,6 +99,6 @@ declare class CogTiles {
129
99
  * @param {number} tileSize - The width/height of the square tile.
130
100
  * @returns {TypedArray} A typed array buffer of length tileSize * tileSize.
131
101
  */
132
- createTileBuffer(dataType: any, tileSize: any): Uint32Array | Float32Array | Uint8Array | Int8Array | Uint16Array | Int16Array | Int32Array | Float64Array;
102
+ createTileBuffer(dataType: any, tileSize: any): Uint32Array<ArrayBuffer> | Float32Array<ArrayBuffer> | Int8Array<ArrayBuffer> | Uint8Array<ArrayBuffer> | Int16Array<ArrayBuffer> | Uint16Array<ArrayBuffer> | Int32Array<ArrayBuffer> | Float64Array<ArrayBuffer>;
133
103
  }
134
104
  export default CogTiles;
@@ -6,6 +6,7 @@ export type ClampToTerrainOptions = {
6
6
  };
7
7
  export type GeoImageOptions = {
8
8
  type: 'image' | 'terrain';
9
+ tesselator?: 'martini' | 'delatin';
9
10
  format?: 'uint8' | 'uint16' | 'uint32' | 'int8' | 'int16' | 'int32' | 'float32' | 'float64';
10
11
  useHeatMap?: boolean;
11
12
  useColorsBasedOnValues?: boolean;
@@ -56,16 +57,16 @@ export default class GeoImage {
56
57
  };
57
58
  mode: number;
58
59
  indices: {
59
- value: Uint32Array;
60
+ value: Uint32Array<ArrayBuffer>;
60
61
  size: number;
61
62
  };
62
63
  attributes: {
63
64
  POSITION: {
64
- value: Float32Array;
65
+ value: Float32Array<ArrayBuffer>;
65
66
  size: number;
66
67
  };
67
68
  TEXCOORD_0: {
68
- value: Float32Array;
69
+ value: Float32Array<ArrayBuffer>;
69
70
  size: number;
70
71
  };
71
72
  };
@@ -85,16 +86,16 @@ export default class GeoImage {
85
86
  };
86
87
  mode: number;
87
88
  indices: {
88
- value: Uint32Array;
89
+ value: Uint32Array<ArrayBuffer>;
89
90
  size: number;
90
91
  };
91
92
  attributes: {
92
93
  POSITION: {
93
- value: Float32Array;
94
+ value: Float32Array<ArrayBuffer>;
94
95
  size: number;
95
96
  };
96
97
  TEXCOORD_0: {
97
- value: Float32Array;
98
+ value: Float32Array<ArrayBuffer>;
98
99
  size: number;
99
100
  };
100
101
  };
@@ -0,0 +1,3 @@
1
+ export { default as CogTiles } from './CogTiles';
2
+ export { default as GeoImage } from './GeoImage';
3
+ export type { GeoImageOptions } from './GeoImage';
@@ -1,11 +1,3 @@
1
- import CogBitmapLayer from './cogbitmaplayer/CogBitmapLayer.ts';
2
- import CogTerrainLayer from './cogterrainlayer/CogTerrainLayer.ts';
3
- import cogtiles from './cogtiles/cogtiles.ts';
4
- import GeoImage from './geoimage/geoimage.ts';
5
- declare const _default: {
6
- CogBitmapLayer: typeof CogBitmapLayer;
7
- CogTerrainLayer: typeof CogTerrainLayer;
8
- cogtiles: typeof cogtiles;
9
- GeoImage: typeof GeoImage;
10
- };
11
- export default _default;
1
+ export { CogBitmapLayer, CogTerrainLayer } from './layers/index';
2
+ export { CogTiles, GeoImage } from './core/index';
3
+ export type { GeoImageOptions } from './core/index';
@@ -2,7 +2,8 @@ import { CompositeLayer, CompositeLayerProps, DefaultProps, TextureSource, Updat
2
2
  import { _Tile2DHeader as Tile2DHeader, _TileLoadProps as TileLoadProps, GeoBoundingBox, NonGeoBoundingBox, TileLayer, TileLayerProps } from '@deck.gl/geo-layers';
3
3
  import { BitmapLayer } from '@deck.gl/layers';
4
4
  import type { MeshAttributes } from '@loaders.gl/schema';
5
- import { GeoImageOptions } from '../geoimage/geoimage.ts';
5
+ import CogTiles from '../core/CogTiles';
6
+ import { GeoImageOptions } from '../core/GeoImage';
6
7
  export type TileBoundingBox = NonGeoBoundingBox | GeoBoundingBox;
7
8
  export type ZRange = [minZ: number, maxZ: number];
8
9
  export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
@@ -23,8 +24,6 @@ type _CogBitmapLayerProps = {
23
24
  rasterData: URLTemplate;
24
25
  /** Bounding box of the bitmap image, [minX, minY, maxX, maxY] in world coordinates. * */
25
26
  bounds: Bounds | null;
26
- /** Weather visualise the entire image with specified opacity (0-1) * */
27
- opacity?: number;
28
27
  /** Whether the rendered texture should be clamped to terrain * */
29
28
  clampToTerrain?: ClampToTerrainOptions | boolean;
30
29
  /**
@@ -32,6 +31,8 @@ type _CogBitmapLayerProps = {
32
31
  */
33
32
  cogBitmapOptions: GeoImageOptions;
34
33
  isTiled: boolean;
34
+ /** Pre-initialized CogTiles object */
35
+ cogTiles?: CogTiles;
35
36
  /**
36
37
  * @deprecated Use `loadOptions.terrain.workerUrl` instead
37
38
  */
@@ -40,7 +41,7 @@ type _CogBitmapLayerProps = {
40
41
  /** All properties supported by CogBitmapLayer */
41
42
  export type CogBitmapLayerProps = _CogBitmapLayerProps & TileLayerProps<MeshAndTexture> & CompositeLayerProps;
42
43
  /** Render bitmap texture from cog raster images. */
43
- export default class CogBitmapLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_CogBitmapLayerProps & Required<TileLayerProps<MeshAndTexture>>>> {
44
+ export default class CogBitmapLayer<ExtraPropsT extends object = object> extends CompositeLayer<ExtraPropsT & Required<_CogBitmapLayerProps & Required<TileLayerProps<MeshAndTexture>>>> {
44
45
  static defaultProps: DefaultProps<CogBitmapLayerProps>;
45
46
  static layerName: string;
46
47
  state: {
@@ -77,7 +78,7 @@ export default class CogBitmapLayer<ExtraPropsT extends {} = {}> extends Composi
77
78
  onTileError: (err: any, tile?: any) => void;
78
79
  maxCacheSize: number;
79
80
  maxCacheByteSize: number;
80
- refinementStrategy: import("node_modules/@deck.gl/geo-layers/dist/tileset-2d/tileset-2d.js").RefinementStrategy;
81
+ refinementStrategy: import("@deck.gl/geo-layers/dist/tileset-2d").RefinementStrategy;
81
82
  }>;
82
83
  }
83
84
  export {};
@@ -2,6 +2,8 @@ import { Color, CompositeLayer, CompositeLayerProps, DefaultProps, Layer, Layers
2
2
  import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
3
3
  import type { MeshAttributes } from '@loaders.gl/schema';
4
4
  import { TileLayerProps, GeoBoundingBox, _TileLoadProps as TileLoadProps, _Tile2DHeader as Tile2DHeader, NonGeoBoundingBox } from '@deck.gl/geo-layers';
5
+ import CogTiles from '../core/CogTiles';
6
+ import { GeoImageOptions } from '../core/GeoImage';
5
7
  export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
6
8
  export type TileBoundingBox = NonGeoBoundingBox | GeoBoundingBox;
7
9
  export type ZRange = [minZ: number, maxZ: number];
@@ -26,12 +28,13 @@ type TerrainLoadProps = {
26
28
  signal?: AbortSignal;
27
29
  };
28
30
  type MeshAndTexture = [MeshAttributes | null, TextureSource | null];
29
- /** All properties supported by TerrainLayer */
30
- export type TerrainLayerProps = _TerrainLayerProps & TileLayerProps<MeshAndTexture> & CompositeLayerProps;
31
- /** Props added by the TerrainLayer */
32
- type _TerrainLayerProps = {
31
+ /** All properties supported by CogTerrainLayer */
32
+ export type CogTerrainLayerProps = _CogTerrainLayerProps & TileLayerProps<MeshAndTexture> & CompositeLayerProps;
33
+ /** Props added by the CogTerrainLayer */
34
+ type _CogTerrainLayerProps = {
33
35
  /** Image url that encodes height data. * */
34
36
  elevationData: URLTemplate;
37
+ isTiled?: boolean;
35
38
  /** Image url to use as texture. * */
36
39
  texture?: URLTemplate;
37
40
  /** Martini error tolerance in meters, smaller number -> more detailed mesh. * */
@@ -49,15 +52,17 @@ type _TerrainLayerProps = {
49
52
  /**
50
53
  * TODO
51
54
  */
52
- terrainOptions: Object;
55
+ terrainOptions: GeoImageOptions;
56
+ /** Pre-initialized CogTiles object for terrain */
57
+ cogTiles?: CogTiles;
53
58
  /**
54
59
  * @deprecated Use `loadOptions.terrain.workerUrl` instead
55
60
  */
56
61
  workerUrl?: string;
57
62
  };
58
63
  /** Render mesh surfaces from height map images. */
59
- export default class TerrainLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_TerrainLayerProps & Required<TileLayerProps<MeshAndTexture>>>> {
60
- static defaultProps: DefaultProps<TerrainLayerProps>;
64
+ export default class CogTerrainLayer<ExtraPropsT extends object = object> extends CompositeLayer<ExtraPropsT & Required<_CogTerrainLayerProps & Required<TileLayerProps<MeshAndTexture>>>> {
65
+ static defaultProps: DefaultProps<_CogTerrainLayerProps>;
61
66
  static layerName: string;
62
67
  terrainUrl: string;
63
68
  state: {
@@ -66,9 +71,11 @@ export default class TerrainLayer<ExtraPropsT extends {} = {}> extends Composite
66
71
  zRange?: ZRange | null;
67
72
  minZoom: number;
68
73
  maxZoom: number;
74
+ terrainCogTiles: CogTiles;
75
+ initialized: boolean;
69
76
  };
70
77
  initializeState(context: any): Promise<void>;
71
- init(terrainUrl: string): Promise<void>;
78
+ init(): Promise<void>;
72
79
  updateState({ props, oldProps }: UpdateParameters<this>): void;
73
80
  loadTerrain({ elevationData, bounds, elevationDecoder, meshMaxError, signal, }: TerrainLoadProps): Promise<MeshAttributes> | null;
74
81
  getTiledTerrainData(tile: TileLoadProps): Promise<MeshAndTexture>;
@@ -0,0 +1,2 @@
1
+ export { default as CogBitmapLayer } from './CogBitmapLayer';
2
+ export { default as CogTerrainLayer } from './CogTerrainLayer';