@developmentseed/deck.gl-geotiff 0.1.0 → 0.3.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cog-layer.d.ts +41 -35
- package/dist/cog-layer.d.ts.map +1 -1
- package/dist/cog-layer.js +79 -80
- package/dist/cog-layer.js.map +1 -1
- package/dist/cog-tile-matrix-set.d.ts +2 -11
- package/dist/cog-tile-matrix-set.d.ts.map +1 -1
- package/dist/cog-tile-matrix-set.js +2 -155
- package/dist/cog-tile-matrix-set.js.map +1 -1
- package/dist/geotiff/geotiff.d.ts +5 -43
- package/dist/geotiff/geotiff.d.ts.map +1 -1
- package/dist/geotiff/geotiff.js +28 -101
- package/dist/geotiff/geotiff.js.map +1 -1
- package/dist/geotiff/high-level/affine.d.ts +16 -0
- package/dist/geotiff/high-level/affine.d.ts.map +1 -0
- package/dist/geotiff/high-level/affine.js +2 -0
- package/dist/geotiff/high-level/affine.js.map +1 -0
- package/dist/geotiff/high-level/array.d.ts +37 -0
- package/dist/geotiff/high-level/array.d.ts.map +1 -0
- package/dist/geotiff/high-level/array.js +2 -0
- package/dist/geotiff/high-level/array.js.map +1 -0
- package/dist/geotiff/high-level/geotiff.d.ts +63 -0
- package/dist/geotiff/high-level/geotiff.d.ts.map +1 -0
- package/dist/geotiff/high-level/geotiff.js +135 -0
- package/dist/geotiff/high-level/geotiff.js.map +1 -0
- package/dist/geotiff/high-level/index.d.ts +8 -0
- package/dist/geotiff/high-level/index.d.ts.map +1 -0
- package/dist/geotiff/high-level/index.js +5 -0
- package/dist/geotiff/high-level/index.js.map +1 -0
- package/dist/geotiff/high-level/options.d.ts +11 -0
- package/dist/geotiff/high-level/options.d.ts.map +1 -0
- package/dist/geotiff/high-level/options.js +2 -0
- package/dist/geotiff/high-level/options.js.map +1 -0
- package/dist/geotiff/high-level/overview.d.ts +46 -0
- package/dist/geotiff/high-level/overview.d.ts.map +1 -0
- package/dist/geotiff/high-level/overview.js +124 -0
- package/dist/geotiff/high-level/overview.js.map +1 -0
- package/dist/geotiff/high-level/tile.d.ts +11 -0
- package/dist/geotiff/high-level/tile.d.ts.map +1 -0
- package/dist/geotiff/high-level/tile.js +2 -0
- package/dist/geotiff/high-level/tile.js.map +1 -0
- package/dist/geotiff/high-level/transform.d.ts +23 -0
- package/dist/geotiff/high-level/transform.d.ts.map +1 -0
- package/dist/geotiff/high-level/transform.js +55 -0
- package/dist/geotiff/high-level/transform.js.map +1 -0
- package/dist/geotiff/high-level/window.d.ts +23 -0
- package/dist/geotiff/high-level/window.d.ts.map +1 -0
- package/dist/geotiff/high-level/window.js +31 -0
- package/dist/geotiff/high-level/window.js.map +1 -0
- package/dist/geotiff/render-pipeline.d.ts +2 -2
- package/dist/geotiff/render-pipeline.d.ts.map +1 -1
- package/dist/geotiff/render-pipeline.js +47 -44
- package/dist/geotiff/render-pipeline.js.map +1 -1
- package/dist/geotiff/texture.d.ts +5 -4
- package/dist/geotiff/texture.d.ts.map +1 -1
- package/dist/geotiff/texture.js +7 -7
- package/dist/geotiff/texture.js.map +1 -1
- package/dist/geotiff/types.d.ts +0 -29
- package/dist/geotiff/types.d.ts.map +1 -1
- package/dist/geotiff/types.js +1 -12
- package/dist/geotiff/types.js.map +1 -1
- package/dist/geotiff-layer.d.ts +17 -21
- package/dist/geotiff-layer.d.ts.map +1 -1
- package/dist/geotiff-layer.js +25 -21
- package/dist/geotiff-layer.js.map +1 -1
- package/dist/geotiff-reprojection.d.ts +4 -18
- package/dist/geotiff-reprojection.d.ts.map +1 -1
- package/dist/geotiff-reprojection.js +9 -126
- package/dist/geotiff-reprojection.js.map +1 -1
- package/dist/geotiff-types.d.ts +13 -0
- package/dist/geotiff-types.d.ts.map +1 -0
- package/dist/geotiff-types.js +2 -0
- package/dist/geotiff-types.js.map +1 -0
- package/dist/geotiff.d.ts +50 -0
- package/dist/geotiff.d.ts.map +1 -0
- package/dist/geotiff.js +135 -0
- package/dist/geotiff.js.map +1 -0
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/mosaic-layer/mosaic-layer.d.ts +31 -0
- package/dist/mosaic-layer/mosaic-layer.d.ts.map +1 -0
- package/dist/mosaic-layer/mosaic-layer.js +59 -0
- package/dist/mosaic-layer/mosaic-layer.js.map +1 -0
- package/dist/mosaic-layer/mosaic-tile-traversal.d.ts +1 -0
- package/dist/mosaic-layer/mosaic-tile-traversal.d.ts.map +1 -0
- package/dist/mosaic-layer/mosaic-tile-traversal.js +2 -0
- package/dist/mosaic-layer/mosaic-tile-traversal.js.map +1 -0
- package/dist/mosaic-layer/mosaic-tileset-2d.d.ts +42 -0
- package/dist/mosaic-layer/mosaic-tileset-2d.d.ts.map +1 -0
- package/dist/mosaic-layer/mosaic-tileset-2d.js +44 -0
- package/dist/mosaic-layer/mosaic-tileset-2d.js.map +1 -0
- package/dist/mosaic-layer.d.ts +1 -0
- package/dist/mosaic-layer.d.ts.map +1 -0
- package/dist/mosaic-layer.js +2 -0
- package/dist/mosaic-layer.js.map +1 -0
- package/dist/proj.d.ts +3 -23
- package/dist/proj.d.ts.map +1 -1
- package/dist/proj.js +20 -38
- package/dist/proj.js.map +1 -1
- package/dist/texture.d.ts +10 -0
- package/dist/texture.d.ts.map +1 -0
- package/dist/texture.js +135 -0
- package/dist/texture.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +16 -11
package/dist/cog-layer.d.ts
CHANGED
|
@@ -2,12 +2,14 @@ import type { CompositeLayerProps, Layer, LayersList, UpdateParameters } from "@
|
|
|
2
2
|
import { CompositeLayer } from "@deck.gl/core";
|
|
3
3
|
import type { _Tile2DHeader as Tile2DHeader, TileLayerProps, _TileLoadProps as TileLoadProps } from "@deck.gl/geo-layers";
|
|
4
4
|
import { TileLayer } from "@deck.gl/geo-layers";
|
|
5
|
-
import type { RasterModule
|
|
5
|
+
import type { RasterModule } from "@developmentseed/deck.gl-raster";
|
|
6
|
+
import type { GeoTIFF, Overview } from "@developmentseed/geotiff";
|
|
7
|
+
import type { TileMatrixSet } from "@developmentseed/morecantile";
|
|
6
8
|
import type { ReprojectionFns } from "@developmentseed/raster-reproject";
|
|
7
9
|
import type { Device } from "@luma.gl/core";
|
|
8
|
-
import type {
|
|
10
|
+
import type { ProjectionDefinition } from "wkt-parser";
|
|
9
11
|
import type { TextureDataT } from "./geotiff/render-pipeline.js";
|
|
10
|
-
import type {
|
|
12
|
+
import type { EpsgResolver } from "./proj.js";
|
|
11
13
|
/**
|
|
12
14
|
* Minimum interface that **must** be returned from getTileData.
|
|
13
15
|
*/
|
|
@@ -22,12 +24,12 @@ export type DefaultDataT = MinimalDataT & {
|
|
|
22
24
|
export type GetTileDataOptions = {
|
|
23
25
|
/** The luma.gl Device */
|
|
24
26
|
device: Device;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
+
/** The x coordinate of the tile within the IFD. */
|
|
28
|
+
x: number;
|
|
29
|
+
/** The y coordinate of the tile within the IFD. */
|
|
30
|
+
y: number;
|
|
27
31
|
/** An AbortSignal that may be signalled if the request is to be aborted */
|
|
28
32
|
signal?: AbortSignal;
|
|
29
|
-
/** The decoder pool to use. */
|
|
30
|
-
pool: Pool;
|
|
31
33
|
};
|
|
32
34
|
type GetTileDataResult<DataT> = {
|
|
33
35
|
data: DataT;
|
|
@@ -36,31 +38,29 @@ type GetTileDataResult<DataT> = {
|
|
|
36
38
|
};
|
|
37
39
|
export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extends CompositeLayerProps {
|
|
38
40
|
/**
|
|
39
|
-
* GeoTIFF input.
|
|
41
|
+
* Cloud-optimized GeoTIFF input.
|
|
40
42
|
*
|
|
41
|
-
* - URL string pointing to a COG
|
|
42
|
-
* - ArrayBuffer containing the COG data
|
|
43
|
-
* -
|
|
44
|
-
* - An instance of GeoTIFF.js's GeoTIFF class
|
|
45
|
-
* - An instance of GeoTIFF.js's BaseClient for custom fetching
|
|
43
|
+
* - {@link URL} or `string` pointing to a COG
|
|
44
|
+
* - {@link ArrayBuffer} containing the COG data
|
|
45
|
+
* - An instance of the {@link GeoTIFF} class.
|
|
46
46
|
*/
|
|
47
|
-
geotiff: GeoTIFF | string |
|
|
47
|
+
geotiff: GeoTIFF | string | URL | ArrayBuffer;
|
|
48
48
|
/**
|
|
49
|
-
* A function callback for parsing
|
|
50
|
-
*
|
|
49
|
+
* A function callback for parsing numeric EPSG codes to projection
|
|
50
|
+
* information (as returned by `wkt-parser`).
|
|
51
51
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
52
|
+
* The default implementation:
|
|
53
|
+
* - makes a request to epsg.io to resolve EPSG codes found in the GeoTIFF.
|
|
54
|
+
* - caches any previous requests
|
|
55
|
+
* - parses PROJJSON response with `wkt-parser`
|
|
55
56
|
*/
|
|
56
|
-
|
|
57
|
+
epsgResolver?: EpsgResolver;
|
|
57
58
|
/**
|
|
58
59
|
* GeoTIFF.js Pool for decoding image chunks.
|
|
59
60
|
*
|
|
60
61
|
* If none is provided, a default Pool will be created and shared between all
|
|
61
62
|
* COGLayer and GeoTIFFLayer instances.
|
|
62
63
|
*/
|
|
63
|
-
pool?: Pool;
|
|
64
64
|
/**
|
|
65
65
|
* Maximum reprojection error in pixels for mesh refinement.
|
|
66
66
|
* Lower values create denser meshes with higher accuracy.
|
|
@@ -70,13 +70,13 @@ export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extend
|
|
|
70
70
|
/**
|
|
71
71
|
* User-defined method to load data for a tile.
|
|
72
72
|
*
|
|
73
|
-
* The default implementation loads an RGBA image
|
|
74
|
-
*
|
|
73
|
+
* The default implementation loads an RGBA image, returning an ImageData
|
|
74
|
+
* object.
|
|
75
75
|
*
|
|
76
76
|
* For more customizability, you can also return a Texture object from
|
|
77
77
|
* luma.gl, along with optional custom shaders for the RasterLayer.
|
|
78
78
|
*/
|
|
79
|
-
getTileData?: (image:
|
|
79
|
+
getTileData?: (image: GeoTIFF | Overview, options: GetTileDataOptions) => Promise<DataT>;
|
|
80
80
|
/**
|
|
81
81
|
* User-defined method to render data for a tile.
|
|
82
82
|
*
|
|
@@ -99,12 +99,9 @@ export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extend
|
|
|
99
99
|
debugOpacity?: number;
|
|
100
100
|
/**
|
|
101
101
|
* Called when the GeoTIFF metadata has been loaded and parsed.
|
|
102
|
-
*
|
|
103
|
-
* @param {GeoTIFF} geotiff
|
|
104
|
-
* @param {ProjectionInfo} projection
|
|
105
102
|
*/
|
|
106
103
|
onGeoTIFFLoad?: (geotiff: GeoTIFF, options: {
|
|
107
|
-
projection:
|
|
104
|
+
projection: ProjectionDefinition;
|
|
108
105
|
/**
|
|
109
106
|
* Bounds of the image in geographic coordinates (WGS84) [minLon, minLat,
|
|
110
107
|
* maxLon, maxLat]
|
|
@@ -116,6 +113,13 @@ export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extend
|
|
|
116
113
|
north: number;
|
|
117
114
|
};
|
|
118
115
|
}) => void;
|
|
116
|
+
/** A user-provided AbortSignal to cancel loading.
|
|
117
|
+
*
|
|
118
|
+
* This can be useful in combination with the MosaicLayer, so that when a
|
|
119
|
+
* mosaic source is out of the viewport, all of its tile requests are
|
|
120
|
+
* automatically aborted.
|
|
121
|
+
*/
|
|
122
|
+
signal?: AbortSignal;
|
|
119
123
|
}
|
|
120
124
|
/**
|
|
121
125
|
* COGLayer renders a COG using a tiled approach with reprojection.
|
|
@@ -124,10 +128,11 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
|
|
|
124
128
|
static layerName: string;
|
|
125
129
|
static defaultProps: Partial<COGLayerProps<DefaultDataT>>;
|
|
126
130
|
state: {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
+
geotiff: GeoTIFF;
|
|
132
|
+
forwardTo4326?: ReprojectionFns["forwardReproject"];
|
|
133
|
+
inverseFrom4326?: ReprojectionFns["inverseReproject"];
|
|
134
|
+
forwardTo3857?: ReprojectionFns["forwardReproject"];
|
|
135
|
+
tms?: TileMatrixSet;
|
|
131
136
|
defaultGetTileData?: COGLayerProps<TextureDataT>["getTileData"];
|
|
132
137
|
defaultRenderTile?: COGLayerProps<TextureDataT>["renderTile"];
|
|
133
138
|
};
|
|
@@ -137,14 +142,15 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
|
|
|
137
142
|
/**
|
|
138
143
|
* Inner callback passed in to the underlying TileLayer's `getTileData`.
|
|
139
144
|
*/
|
|
140
|
-
_getTileData(tile: TileLoadProps,
|
|
145
|
+
_getTileData(tile: TileLoadProps, geotiff: GeoTIFF, tms: TileMatrixSet): Promise<GetTileDataResult<DataT>>;
|
|
141
146
|
_renderSubLayers(props: TileLayerProps<GetTileDataResult<DataT>> & {
|
|
142
147
|
id: string;
|
|
143
148
|
data?: GetTileDataResult<DataT>;
|
|
144
149
|
_offset: number;
|
|
145
150
|
tile: Tile2DHeader<GetTileDataResult<DataT>>;
|
|
146
|
-
},
|
|
147
|
-
|
|
151
|
+
}, tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"]): Layer | LayersList | null;
|
|
152
|
+
/** Define the underlying deck.gl TileLayer. */
|
|
153
|
+
renderTileLayer(tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"], forwardTo3857: ReprojectionFns["forwardReproject"], geotiff: GeoTIFF): TileLayer;
|
|
148
154
|
renderLayers(): TileLayer<any, {}> | null;
|
|
149
155
|
}
|
|
150
156
|
export {};
|
package/dist/cog-layer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cog-layer.d.ts","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,IAAI,YAAY,EAC7B,cAAc,EACd,cAAc,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"cog-layer.d.ts","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
|
package/dist/cog-layer.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { CompositeLayer } from "@deck.gl/core";
|
|
2
2
|
import { TileLayer } from "@deck.gl/geo-layers";
|
|
3
3
|
import { PathLayer } from "@deck.gl/layers";
|
|
4
|
-
import { RasterLayer,
|
|
4
|
+
import { RasterLayer, TileMatrixSetTileset, } from "@developmentseed/deck.gl-raster";
|
|
5
|
+
import { generateTileMatrixSet } from "@developmentseed/geotiff";
|
|
6
|
+
import { tileTransform } from "@developmentseed/morecantile";
|
|
5
7
|
import proj4 from "proj4";
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
+
import wktParser from "wkt-parser";
|
|
9
|
+
import { fetchGeoTIFF, getGeographicBounds } from "./geotiff/geotiff.js";
|
|
8
10
|
import { inferRenderPipeline } from "./geotiff/render-pipeline.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
+
import { fromAffine } from "./geotiff-reprojection.js";
|
|
12
|
+
import { epsgResolver } from "./proj.js";
|
|
11
13
|
const defaultProps = {
|
|
12
|
-
|
|
14
|
+
epsgResolver,
|
|
13
15
|
debug: false,
|
|
14
16
|
debugOpacity: 0.5,
|
|
15
17
|
};
|
|
@@ -32,34 +34,34 @@ export class COGLayer extends CompositeLayer {
|
|
|
32
34
|
}
|
|
33
35
|
async _parseGeoTIFF() {
|
|
34
36
|
const geotiff = await fetchGeoTIFF(this.props.geotiff);
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
const inverseReproject = (x, y) => converter.inverse([x, y], false);
|
|
37
|
+
const crs = geotiff.crs;
|
|
38
|
+
const sourceProjection = typeof crs === "number"
|
|
39
|
+
? await this.props.epsgResolver(crs)
|
|
40
|
+
: wktParser(crs);
|
|
41
|
+
const tms = generateTileMatrixSet(geotiff, sourceProjection);
|
|
42
|
+
// @ts-expect-error - proj4 typings are incomplete and don't support
|
|
43
|
+
// wkt-parser input
|
|
44
|
+
const converter4326 = proj4(sourceProjection, "EPSG:4326");
|
|
45
|
+
const forwardTo4326 = (x, y) => converter4326.forward([x, y], false);
|
|
46
|
+
const inverseFrom4326 = (x, y) => converter4326.inverse([x, y], false);
|
|
47
|
+
// @ts-expect-error - proj4 typings are incomplete and don't support
|
|
48
|
+
// wkt-parser input
|
|
49
|
+
const converter3857 = proj4(sourceProjection, "EPSG:3857");
|
|
50
|
+
const forwardTo3857 = (x, y) => converter3857.forward([x, y], false);
|
|
50
51
|
if (this.props.onGeoTIFFLoad) {
|
|
51
|
-
const geographicBounds = getGeographicBounds(
|
|
52
|
+
const geographicBounds = getGeographicBounds(geotiff, converter4326);
|
|
52
53
|
this.props.onGeoTIFFLoad(geotiff, {
|
|
53
54
|
projection: sourceProjection,
|
|
54
55
|
geographicBounds,
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
|
-
const { getTileData: defaultGetTileData, renderTile: defaultRenderTile } = inferRenderPipeline(
|
|
58
|
+
const { getTileData: defaultGetTileData, renderTile: defaultRenderTile } = inferRenderPipeline(geotiff, this.context.device);
|
|
58
59
|
this.setState({
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
geotiff,
|
|
61
|
+
tms,
|
|
62
|
+
forwardTo4326,
|
|
63
|
+
inverseFrom4326,
|
|
64
|
+
forwardTo3857,
|
|
63
65
|
defaultGetTileData,
|
|
64
66
|
defaultRenderTile,
|
|
65
67
|
});
|
|
@@ -67,29 +69,33 @@ export class COGLayer extends CompositeLayer {
|
|
|
67
69
|
/**
|
|
68
70
|
* Inner callback passed in to the underlying TileLayer's `getTileData`.
|
|
69
71
|
*/
|
|
70
|
-
async _getTileData(tile,
|
|
72
|
+
async _getTileData(tile, geotiff, tms) {
|
|
71
73
|
const { signal } = tile;
|
|
72
74
|
const { x, y, z } = tile.index;
|
|
73
75
|
// Select overview image
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
Math.min((y + 1) * tileHeight, imageHeight),
|
|
86
|
-
];
|
|
76
|
+
// If z=0, use the coarsest overview (which is the last in the array)
|
|
77
|
+
// If z=max, use the full-resolution image (which is the first in the array)
|
|
78
|
+
// TODO: should be able to (micro) optimize this to not create the array
|
|
79
|
+
// Something like:
|
|
80
|
+
// const image = z === geotiff.overviews.length - 1 ? geotiff :
|
|
81
|
+
// geotiff.overviews[geotiff.overviews.length - 1 - z]!;
|
|
82
|
+
const images = [geotiff, ...geotiff.overviews];
|
|
83
|
+
const image = images[images.length - 1 - z];
|
|
84
|
+
const tileMatrix = tms.tileMatrices[z];
|
|
85
|
+
const tileAffine = tileTransform(tileMatrix, { col: x, row: y });
|
|
86
|
+
const { forwardTransform, inverseTransform } = fromAffine(tileAffine);
|
|
87
87
|
const getTileData = this.props.getTileData || this.state.defaultGetTileData;
|
|
88
|
-
|
|
88
|
+
// Combine abort signals if both are defined
|
|
89
|
+
const combinedSignal = signal && this.props.signal
|
|
90
|
+
? AbortSignal.any([signal, this.props.signal])
|
|
91
|
+
: signal || this.props.signal;
|
|
92
|
+
const data = await getTileData(image, {
|
|
89
93
|
device: this.context.device,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
x,
|
|
95
|
+
y,
|
|
96
|
+
signal: combinedSignal,
|
|
97
|
+
// TODO: restore pool
|
|
98
|
+
// pool: this.props.pool || defaultPool(),
|
|
93
99
|
});
|
|
94
100
|
return {
|
|
95
101
|
// @ts-expect-error type mismatch when using provided getTileData
|
|
@@ -101,7 +107,7 @@ export class COGLayer extends CompositeLayer {
|
|
|
101
107
|
_renderSubLayers(
|
|
102
108
|
// TODO: it would be nice to have a cleaner type here
|
|
103
109
|
// this is copy-pasted from the upstream tile layer definition for props.
|
|
104
|
-
props,
|
|
110
|
+
props, tms, forwardTo4326, inverseFrom4326) {
|
|
105
111
|
const { maxError, debug, debugOpacity } = this.props;
|
|
106
112
|
const { tile } = props;
|
|
107
113
|
if (!props.data) {
|
|
@@ -121,8 +127,8 @@ export class COGLayer extends CompositeLayer {
|
|
|
121
127
|
reprojectionFns: {
|
|
122
128
|
forwardTransform,
|
|
123
129
|
inverseTransform,
|
|
124
|
-
forwardReproject,
|
|
125
|
-
inverseReproject,
|
|
130
|
+
forwardReproject: forwardTo4326,
|
|
131
|
+
inverseReproject: inverseFrom4326,
|
|
126
132
|
},
|
|
127
133
|
debug,
|
|
128
134
|
debugOpacity,
|
|
@@ -133,15 +139,15 @@ export class COGLayer extends CompositeLayer {
|
|
|
133
139
|
// getTileMetadata returns data that includes projectedBounds
|
|
134
140
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
135
141
|
const projectedBounds = tile?.projectedBounds;
|
|
136
|
-
if (!projectedBounds || !
|
|
142
|
+
if (!projectedBounds || !tms) {
|
|
137
143
|
return [];
|
|
138
144
|
}
|
|
139
145
|
// Project bounds from image CRS to WGS84
|
|
140
146
|
const { topLeft, topRight, bottomLeft, bottomRight } = projectedBounds;
|
|
141
|
-
const topLeftWgs84 =
|
|
142
|
-
const topRightWgs84 =
|
|
143
|
-
const bottomRightWgs84 =
|
|
144
|
-
const bottomLeftWgs84 =
|
|
147
|
+
const topLeftWgs84 = forwardTo4326(topLeft[0], topLeft[1]);
|
|
148
|
+
const topRightWgs84 = forwardTo4326(topRight[0], topRight[1]);
|
|
149
|
+
const bottomRightWgs84 = forwardTo4326(bottomRight[0], bottomRight[1]);
|
|
150
|
+
const bottomLeftWgs84 = forwardTo4326(bottomLeft[0], bottomLeft[1]);
|
|
145
151
|
// Create a closed path around the tile bounds
|
|
146
152
|
const path = [
|
|
147
153
|
topLeftWgs84,
|
|
@@ -151,9 +157,9 @@ export class COGLayer extends CompositeLayer {
|
|
|
151
157
|
topLeftWgs84, // Close the path
|
|
152
158
|
];
|
|
153
159
|
layers.push(new PathLayer({
|
|
154
|
-
id: `${tile.id}-bounds`,
|
|
155
|
-
data: [
|
|
156
|
-
getPath: (d) => d
|
|
160
|
+
id: `${this.id}-${tile.id}-bounds`,
|
|
161
|
+
data: [path],
|
|
162
|
+
getPath: (d) => d,
|
|
157
163
|
getColor: [255, 0, 0, 255], // Red
|
|
158
164
|
getWidth: 2,
|
|
159
165
|
widthUnits: "pixels",
|
|
@@ -162,44 +168,37 @@ export class COGLayer extends CompositeLayer {
|
|
|
162
168
|
}
|
|
163
169
|
return layers;
|
|
164
170
|
}
|
|
165
|
-
|
|
171
|
+
/** Define the underlying deck.gl TileLayer. */
|
|
172
|
+
renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff) {
|
|
166
173
|
// Create a factory class that wraps COGTileset2D with the metadata
|
|
167
|
-
class
|
|
174
|
+
class TileMatrixSetTilesetFactory extends TileMatrixSetTileset {
|
|
168
175
|
constructor(opts) {
|
|
169
|
-
super(
|
|
176
|
+
super(opts, tms, {
|
|
177
|
+
projectTo4326: forwardTo4326,
|
|
178
|
+
projectTo3857: forwardTo3857,
|
|
179
|
+
});
|
|
170
180
|
}
|
|
171
181
|
}
|
|
172
182
|
return new TileLayer({
|
|
173
183
|
id: `cog-tile-layer-${this.id}`,
|
|
174
|
-
TilesetClass:
|
|
175
|
-
getTileData: async (tile) => this._getTileData(tile,
|
|
176
|
-
renderSubLayers: (props) => this._renderSubLayers(props,
|
|
184
|
+
TilesetClass: TileMatrixSetTilesetFactory,
|
|
185
|
+
getTileData: async (tile) => this._getTileData(tile, geotiff, tms),
|
|
186
|
+
renderSubLayers: (props) => this._renderSubLayers(props, tms, forwardTo4326, inverseFrom4326),
|
|
177
187
|
});
|
|
178
188
|
}
|
|
179
189
|
renderLayers() {
|
|
180
|
-
const {
|
|
181
|
-
if (!
|
|
190
|
+
const { forwardTo4326, inverseFrom4326, forwardTo3857, tms, geotiff } = this.state;
|
|
191
|
+
if (!forwardTo4326 ||
|
|
192
|
+
!inverseFrom4326 ||
|
|
193
|
+
!forwardTo3857 ||
|
|
194
|
+
!tms ||
|
|
195
|
+
!geotiff) {
|
|
182
196
|
return null;
|
|
183
197
|
}
|
|
184
198
|
// Split into a separate method to make TS happy, because when metadata is
|
|
185
199
|
// nullable in any part of function scope, the tileset factory wrapper gives
|
|
186
200
|
// a type error
|
|
187
|
-
return this.renderTileLayer(
|
|
201
|
+
return this.renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff);
|
|
188
202
|
}
|
|
189
203
|
}
|
|
190
|
-
/**
|
|
191
|
-
* Compute the affine geotransform for this tile.
|
|
192
|
-
*
|
|
193
|
-
* We need to offset the geotransform for the matrix level by the tile's pixel
|
|
194
|
-
* origin.
|
|
195
|
-
*/
|
|
196
|
-
function computeTileGeotransform(x, y, tileMatrix) {
|
|
197
|
-
const { tileWidth, tileHeight } = tileMatrix;
|
|
198
|
-
const xPixelOrigin = x * tileWidth;
|
|
199
|
-
const yPixelOrigin = y * tileHeight;
|
|
200
|
-
const [a, b, c, d, e, f] = tileMatrix.geotransform;
|
|
201
|
-
const xCoordOffset = a * xPixelOrigin + b * yPixelOrigin + c;
|
|
202
|
-
const yCoordOffset = d * xPixelOrigin + e * yPixelOrigin + f;
|
|
203
|
-
return [a, b, xCoordOffset, d, e, yCoordOffset];
|
|
204
|
-
}
|
|
205
204
|
//# sourceMappingURL=cog-layer.js.map
|
package/dist/cog-layer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cog-layer.js","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cog-layer.js","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
import type { GeoKeysParser } from "./proj";
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* Ported from Vincent's work here:
|
|
7
|
-
* https://github.com/developmentseed/morecantile/pull/187/changes#diff-402eedddfa30af554d03750c8a82a09962b44b044976c321b774b484b98e8f48R665
|
|
8
|
-
*
|
|
9
|
-
* @return {TileMatrixSet}[return description]
|
|
10
|
-
*/
|
|
11
|
-
export declare function parseCOGTileMatrixSet(tiff: GeoTIFF, geoKeysParser: GeoKeysParser): Promise<TileMatrixSet>;
|
|
1
|
+
import type { BoundingBox } from "@developmentseed/morecantile";
|
|
2
|
+
export declare function computeWgs84BoundingBox(boundingBox: BoundingBox, projectToWgs84: (point: [number, number]) => [number, number]): BoundingBox;
|
|
12
3
|
//# sourceMappingURL=cog-tile-matrix-set.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cog-tile-matrix-set.d.ts","sourceRoot":"","sources":["../src/cog-tile-matrix-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cog-tile-matrix-set.d.ts","sourceRoot":"","sources":["../src/cog-tile-matrix-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAGhE,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5D,WAAW,CA0Cb"}
|