@developmentseed/deck.gl-geotiff 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/cog-layer.d.ts +34 -35
- package/dist/cog-layer.d.ts.map +1 -1
- package/dist/cog-layer.js +71 -76
- package/dist/cog-layer.js.map +1 -1
- package/dist/cog-tile-matrix-set.d.ts +2 -31
- package/dist/cog-tile-matrix-set.d.ts.map +1 -1
- package/dist/cog-tile-matrix-set.js +2 -159
- 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 +0 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +1 -1
- 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.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 +15 -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]
|
|
@@ -131,10 +128,11 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
|
|
|
131
128
|
static layerName: string;
|
|
132
129
|
static defaultProps: Partial<COGLayerProps<DefaultDataT>>;
|
|
133
130
|
state: {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
131
|
+
geotiff: GeoTIFF;
|
|
132
|
+
forwardTo4326?: ReprojectionFns["forwardReproject"];
|
|
133
|
+
inverseFrom4326?: ReprojectionFns["inverseReproject"];
|
|
134
|
+
forwardTo3857?: ReprojectionFns["forwardReproject"];
|
|
135
|
+
tms?: TileMatrixSet;
|
|
138
136
|
defaultGetTileData?: COGLayerProps<TextureDataT>["getTileData"];
|
|
139
137
|
defaultRenderTile?: COGLayerProps<TextureDataT>["renderTile"];
|
|
140
138
|
};
|
|
@@ -144,14 +142,15 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
|
|
|
144
142
|
/**
|
|
145
143
|
* Inner callback passed in to the underlying TileLayer's `getTileData`.
|
|
146
144
|
*/
|
|
147
|
-
_getTileData(tile: TileLoadProps,
|
|
145
|
+
_getTileData(tile: TileLoadProps, geotiff: GeoTIFF, tms: TileMatrixSet): Promise<GetTileDataResult<DataT>>;
|
|
148
146
|
_renderSubLayers(props: TileLayerProps<GetTileDataResult<DataT>> & {
|
|
149
147
|
id: string;
|
|
150
148
|
data?: GetTileDataResult<DataT>;
|
|
151
149
|
_offset: number;
|
|
152
150
|
tile: Tile2DHeader<GetTileDataResult<DataT>>;
|
|
153
|
-
},
|
|
154
|
-
|
|
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;
|
|
155
154
|
renderLayers(): TileLayer<any, {}> | null;
|
|
156
155
|
}
|
|
157
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,EAEhC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,
|
|
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,33 +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
89
|
const combinedSignal = signal && this.props.signal
|
|
90
90
|
? AbortSignal.any([signal, this.props.signal])
|
|
91
91
|
: signal || this.props.signal;
|
|
92
|
-
const data = await getTileData(
|
|
92
|
+
const data = await getTileData(image, {
|
|
93
93
|
device: this.context.device,
|
|
94
|
-
|
|
94
|
+
x,
|
|
95
|
+
y,
|
|
95
96
|
signal: combinedSignal,
|
|
96
|
-
|
|
97
|
+
// TODO: restore pool
|
|
98
|
+
// pool: this.props.pool || defaultPool(),
|
|
97
99
|
});
|
|
98
100
|
return {
|
|
99
101
|
// @ts-expect-error type mismatch when using provided getTileData
|
|
@@ -105,7 +107,7 @@ export class COGLayer extends CompositeLayer {
|
|
|
105
107
|
_renderSubLayers(
|
|
106
108
|
// TODO: it would be nice to have a cleaner type here
|
|
107
109
|
// this is copy-pasted from the upstream tile layer definition for props.
|
|
108
|
-
props,
|
|
110
|
+
props, tms, forwardTo4326, inverseFrom4326) {
|
|
109
111
|
const { maxError, debug, debugOpacity } = this.props;
|
|
110
112
|
const { tile } = props;
|
|
111
113
|
if (!props.data) {
|
|
@@ -125,8 +127,8 @@ export class COGLayer extends CompositeLayer {
|
|
|
125
127
|
reprojectionFns: {
|
|
126
128
|
forwardTransform,
|
|
127
129
|
inverseTransform,
|
|
128
|
-
forwardReproject,
|
|
129
|
-
inverseReproject,
|
|
130
|
+
forwardReproject: forwardTo4326,
|
|
131
|
+
inverseReproject: inverseFrom4326,
|
|
130
132
|
},
|
|
131
133
|
debug,
|
|
132
134
|
debugOpacity,
|
|
@@ -137,15 +139,15 @@ export class COGLayer extends CompositeLayer {
|
|
|
137
139
|
// getTileMetadata returns data that includes projectedBounds
|
|
138
140
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
139
141
|
const projectedBounds = tile?.projectedBounds;
|
|
140
|
-
if (!projectedBounds || !
|
|
142
|
+
if (!projectedBounds || !tms) {
|
|
141
143
|
return [];
|
|
142
144
|
}
|
|
143
145
|
// Project bounds from image CRS to WGS84
|
|
144
146
|
const { topLeft, topRight, bottomLeft, bottomRight } = projectedBounds;
|
|
145
|
-
const topLeftWgs84 =
|
|
146
|
-
const topRightWgs84 =
|
|
147
|
-
const bottomRightWgs84 =
|
|
148
|
-
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]);
|
|
149
151
|
// Create a closed path around the tile bounds
|
|
150
152
|
const path = [
|
|
151
153
|
topLeftWgs84,
|
|
@@ -166,44 +168,37 @@ export class COGLayer extends CompositeLayer {
|
|
|
166
168
|
}
|
|
167
169
|
return layers;
|
|
168
170
|
}
|
|
169
|
-
|
|
171
|
+
/** Define the underlying deck.gl TileLayer. */
|
|
172
|
+
renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff) {
|
|
170
173
|
// Create a factory class that wraps COGTileset2D with the metadata
|
|
171
|
-
class
|
|
174
|
+
class TileMatrixSetTilesetFactory extends TileMatrixSetTileset {
|
|
172
175
|
constructor(opts) {
|
|
173
|
-
super(
|
|
176
|
+
super(opts, tms, {
|
|
177
|
+
projectTo4326: forwardTo4326,
|
|
178
|
+
projectTo3857: forwardTo3857,
|
|
179
|
+
});
|
|
174
180
|
}
|
|
175
181
|
}
|
|
176
182
|
return new TileLayer({
|
|
177
183
|
id: `cog-tile-layer-${this.id}`,
|
|
178
|
-
TilesetClass:
|
|
179
|
-
getTileData: async (tile) => this._getTileData(tile,
|
|
180
|
-
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),
|
|
181
187
|
});
|
|
182
188
|
}
|
|
183
189
|
renderLayers() {
|
|
184
|
-
const {
|
|
185
|
-
if (!
|
|
190
|
+
const { forwardTo4326, inverseFrom4326, forwardTo3857, tms, geotiff } = this.state;
|
|
191
|
+
if (!forwardTo4326 ||
|
|
192
|
+
!inverseFrom4326 ||
|
|
193
|
+
!forwardTo3857 ||
|
|
194
|
+
!tms ||
|
|
195
|
+
!geotiff) {
|
|
186
196
|
return null;
|
|
187
197
|
}
|
|
188
198
|
// Split into a separate method to make TS happy, because when metadata is
|
|
189
199
|
// nullable in any part of function scope, the tileset factory wrapper gives
|
|
190
200
|
// a type error
|
|
191
|
-
return this.renderTileLayer(
|
|
201
|
+
return this.renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff);
|
|
192
202
|
}
|
|
193
203
|
}
|
|
194
|
-
/**
|
|
195
|
-
* Compute the affine geotransform for this tile.
|
|
196
|
-
*
|
|
197
|
-
* We need to offset the geotransform for the matrix level by the tile's pixel
|
|
198
|
-
* origin.
|
|
199
|
-
*/
|
|
200
|
-
function computeTileGeotransform(x, y, tileMatrix) {
|
|
201
|
-
const { tileWidth, tileHeight } = tileMatrix;
|
|
202
|
-
const xPixelOrigin = x * tileWidth;
|
|
203
|
-
const yPixelOrigin = y * tileHeight;
|
|
204
|
-
const [a, b, c, d, e, f] = tileMatrix.geotransform;
|
|
205
|
-
const xCoordOffset = a * xPixelOrigin + b * yPixelOrigin + c;
|
|
206
|
-
const yCoordOffset = d * xPixelOrigin + e * yPixelOrigin + f;
|
|
207
|
-
return [a, b, xCoordOffset, d, e, yCoordOffset];
|
|
208
|
-
}
|
|
209
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;AAO/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cog-layer.js","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
import { type ProjectionDefinition } from "proj4";
|
|
4
|
-
import type { GeoKeysParser, SupportedCrsUnit } from "./proj";
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* Ported from Vincent's work here:
|
|
8
|
-
* https://github.com/developmentseed/morecantile/pull/187/changes#diff-402eedddfa30af554d03750c8a82a09962b44b044976c321b774b484b98e8f48R665
|
|
9
|
-
*
|
|
10
|
-
* @return {TileMatrixSet}[return description]
|
|
11
|
-
*/
|
|
12
|
-
export declare function parseCOGTileMatrixSet(tiff: GeoTIFF, geoKeysParser: GeoKeysParser): Promise<TileMatrixSet>;
|
|
13
|
-
/**
|
|
14
|
-
* Coefficient to convert the coordinate reference system (CRS)
|
|
15
|
-
* units into meters (metersPerUnit).
|
|
16
|
-
*
|
|
17
|
-
* From note g in http://docs.opengeospatial.org/is/17-083r2/17-083r2.html#table_2:
|
|
18
|
-
*
|
|
19
|
-
* > If the CRS uses meters as units of measure for the horizontal dimensions,
|
|
20
|
-
* > then metersPerUnit=1; if it has degrees, then metersPerUnit=2pa/360
|
|
21
|
-
* > (a is the Earth maximum radius of the ellipsoid).
|
|
22
|
-
*
|
|
23
|
-
* If `crsUnit` is provided, it takes precedence over the unit defined in the
|
|
24
|
-
* CRS. This exists because sometimes the parsed CRS from
|
|
25
|
-
* `geotiff-geokeys-to-proj4` doesn't have a unit defined.
|
|
26
|
-
*/
|
|
27
|
-
declare function metersPerUnit(parsedCrs: ProjectionDefinition, crsUnit?: SupportedCrsUnit): number;
|
|
28
|
-
export declare const __TEST_EXPORTS: {
|
|
29
|
-
metersPerUnit: typeof metersPerUnit;
|
|
30
|
-
};
|
|
31
|
-
export {};
|
|
1
|
+
import type { BoundingBox } from "@developmentseed/morecantile";
|
|
2
|
+
export declare function computeWgs84BoundingBox(boundingBox: BoundingBox, projectToWgs84: (point: [number, number]) => [number, number]): BoundingBox;
|
|
32
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"}
|