@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.
Files changed (98) hide show
  1. package/dist/cog-layer.d.ts +34 -35
  2. package/dist/cog-layer.d.ts.map +1 -1
  3. package/dist/cog-layer.js +71 -76
  4. package/dist/cog-layer.js.map +1 -1
  5. package/dist/cog-tile-matrix-set.d.ts +2 -31
  6. package/dist/cog-tile-matrix-set.d.ts.map +1 -1
  7. package/dist/cog-tile-matrix-set.js +2 -159
  8. package/dist/cog-tile-matrix-set.js.map +1 -1
  9. package/dist/geotiff/geotiff.d.ts +5 -43
  10. package/dist/geotiff/geotiff.d.ts.map +1 -1
  11. package/dist/geotiff/geotiff.js +28 -101
  12. package/dist/geotiff/geotiff.js.map +1 -1
  13. package/dist/geotiff/high-level/affine.d.ts +16 -0
  14. package/dist/geotiff/high-level/affine.d.ts.map +1 -0
  15. package/dist/geotiff/high-level/affine.js +2 -0
  16. package/dist/geotiff/high-level/affine.js.map +1 -0
  17. package/dist/geotiff/high-level/array.d.ts +37 -0
  18. package/dist/geotiff/high-level/array.d.ts.map +1 -0
  19. package/dist/geotiff/high-level/array.js +2 -0
  20. package/dist/geotiff/high-level/array.js.map +1 -0
  21. package/dist/geotiff/high-level/geotiff.d.ts +63 -0
  22. package/dist/geotiff/high-level/geotiff.d.ts.map +1 -0
  23. package/dist/geotiff/high-level/geotiff.js +135 -0
  24. package/dist/geotiff/high-level/geotiff.js.map +1 -0
  25. package/dist/geotiff/high-level/index.d.ts +8 -0
  26. package/dist/geotiff/high-level/index.d.ts.map +1 -0
  27. package/dist/geotiff/high-level/index.js +5 -0
  28. package/dist/geotiff/high-level/index.js.map +1 -0
  29. package/dist/geotiff/high-level/options.d.ts +11 -0
  30. package/dist/geotiff/high-level/options.d.ts.map +1 -0
  31. package/dist/geotiff/high-level/options.js +2 -0
  32. package/dist/geotiff/high-level/options.js.map +1 -0
  33. package/dist/geotiff/high-level/overview.d.ts +46 -0
  34. package/dist/geotiff/high-level/overview.d.ts.map +1 -0
  35. package/dist/geotiff/high-level/overview.js +124 -0
  36. package/dist/geotiff/high-level/overview.js.map +1 -0
  37. package/dist/geotiff/high-level/tile.d.ts +11 -0
  38. package/dist/geotiff/high-level/tile.d.ts.map +1 -0
  39. package/dist/geotiff/high-level/tile.js +2 -0
  40. package/dist/geotiff/high-level/tile.js.map +1 -0
  41. package/dist/geotiff/high-level/transform.d.ts +23 -0
  42. package/dist/geotiff/high-level/transform.d.ts.map +1 -0
  43. package/dist/geotiff/high-level/transform.js +55 -0
  44. package/dist/geotiff/high-level/transform.js.map +1 -0
  45. package/dist/geotiff/high-level/window.d.ts +23 -0
  46. package/dist/geotiff/high-level/window.d.ts.map +1 -0
  47. package/dist/geotiff/high-level/window.js +31 -0
  48. package/dist/geotiff/high-level/window.js.map +1 -0
  49. package/dist/geotiff/render-pipeline.d.ts +2 -2
  50. package/dist/geotiff/render-pipeline.d.ts.map +1 -1
  51. package/dist/geotiff/render-pipeline.js +47 -44
  52. package/dist/geotiff/render-pipeline.js.map +1 -1
  53. package/dist/geotiff/texture.d.ts +5 -4
  54. package/dist/geotiff/texture.d.ts.map +1 -1
  55. package/dist/geotiff/texture.js +7 -7
  56. package/dist/geotiff/texture.js.map +1 -1
  57. package/dist/geotiff/types.d.ts +0 -29
  58. package/dist/geotiff/types.d.ts.map +1 -1
  59. package/dist/geotiff/types.js +1 -12
  60. package/dist/geotiff/types.js.map +1 -1
  61. package/dist/geotiff-layer.d.ts +17 -21
  62. package/dist/geotiff-layer.d.ts.map +1 -1
  63. package/dist/geotiff-layer.js +25 -21
  64. package/dist/geotiff-layer.js.map +1 -1
  65. package/dist/geotiff-reprojection.d.ts +4 -18
  66. package/dist/geotiff-reprojection.d.ts.map +1 -1
  67. package/dist/geotiff-reprojection.js +9 -126
  68. package/dist/geotiff-reprojection.js.map +1 -1
  69. package/dist/geotiff-types.d.ts +13 -0
  70. package/dist/geotiff-types.d.ts.map +1 -0
  71. package/dist/geotiff-types.js +2 -0
  72. package/dist/geotiff-types.js.map +1 -0
  73. package/dist/geotiff.d.ts +50 -0
  74. package/dist/geotiff.d.ts.map +1 -0
  75. package/dist/geotiff.js +135 -0
  76. package/dist/geotiff.js.map +1 -0
  77. package/dist/index.d.ts +0 -8
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +0 -6
  80. package/dist/index.js.map +1 -1
  81. package/dist/mosaic-layer/mosaic-tile-traversal.d.ts +1 -0
  82. package/dist/mosaic-layer/mosaic-tile-traversal.d.ts.map +1 -0
  83. package/dist/mosaic-layer/mosaic-tile-traversal.js +2 -0
  84. package/dist/mosaic-layer/mosaic-tile-traversal.js.map +1 -0
  85. package/dist/mosaic-layer.d.ts +1 -0
  86. package/dist/mosaic-layer.d.ts.map +1 -0
  87. package/dist/mosaic-layer.js +2 -0
  88. package/dist/mosaic-layer.js.map +1 -0
  89. package/dist/proj.d.ts +3 -23
  90. package/dist/proj.d.ts.map +1 -1
  91. package/dist/proj.js +20 -38
  92. package/dist/proj.js.map +1 -1
  93. package/dist/texture.d.ts +10 -0
  94. package/dist/texture.d.ts.map +1 -0
  95. package/dist/texture.js +135 -0
  96. package/dist/texture.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -0
  98. package/package.json +15 -11
@@ -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, TileMatrixSet } from "@developmentseed/deck.gl-raster";
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 { BaseClient, GeoTIFF, GeoTIFFImage, Pool } from "geotiff";
10
+ import type { ProjectionDefinition } from "wkt-parser";
9
11
  import type { TextureDataT } from "./geotiff/render-pipeline.js";
10
- import type { GeoKeysParser, ProjectionInfo } from "./proj.js";
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
- /** the subset to read data from in pixels. */
26
- window?: [number, number, number, number];
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
- * - Blob containing the COG data
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 | ArrayBuffer | Blob | BaseClient;
47
+ geotiff: GeoTIFF | string | URL | ArrayBuffer;
48
48
  /**
49
- * A function callback for parsing GeoTIFF geo keys to a Proj4 compatible
50
- * definition.
49
+ * A function callback for parsing numeric EPSG codes to projection
50
+ * information (as returned by `wkt-parser`).
51
51
  *
52
- * By default, uses epsg.io to resolve EPSG codes found in the GeoTIFF.
53
- * Alternatively, you may want to use `geotiff-geokeys-to-proj4`, which is
54
- * more extensive but adds 1.5MB to your bundle size.
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
- geoKeysParser?: GeoKeysParser;
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 using geotiff.js's readRGB
74
- * method, returning an ImageData object.
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: GeoTIFFImage, options: GetTileDataOptions) => Promise<DataT>;
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: ProjectionInfo;
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
- forwardReproject?: ReprojectionFns["forwardReproject"];
135
- inverseReproject?: ReprojectionFns["inverseReproject"];
136
- metadata?: TileMatrixSet;
137
- images?: GeoTIFFImage[];
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, images: GeoTIFFImage[], metadata: TileMatrixSet): Promise<GetTileDataResult<DataT>>;
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
- }, metadata: TileMatrixSet, forwardReproject: ReprojectionFns["forwardReproject"], inverseReproject: ReprojectionFns["inverseReproject"]): Layer | LayersList | null;
154
- renderTileLayer(metadata: TileMatrixSet, forwardReproject: ReprojectionFns["forwardReproject"], inverseReproject: ReprojectionFns["inverseReproject"], images: GeoTIFFImage[]): TileLayer;
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 {};
@@ -1 +1 @@
1
- {"version":3,"file":"cog-layer.d.ts","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
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, RasterTileset2D } from "@developmentseed/deck.gl-raster";
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 { parseCOGTileMatrixSet } from "./cog-tile-matrix-set.js";
7
- import { defaultPool, fetchGeoTIFF, getGeographicBounds, } from "./geotiff/geotiff.js";
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 { fromGeoTransform } from "./geotiff-reprojection.js";
10
- import { epsgIoGeoKeyParser } from "./proj.js";
11
+ import { fromAffine } from "./geotiff-reprojection.js";
12
+ import { epsgResolver } from "./proj.js";
11
13
  const defaultProps = {
12
- geoKeysParser: epsgIoGeoKeyParser,
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 geoKeysParser = this.props.geoKeysParser;
36
- const metadata = await parseCOGTileMatrixSet(geotiff, geoKeysParser);
37
- const image = await geotiff.getImage();
38
- const imageCount = await geotiff.getImageCount();
39
- const images = [];
40
- for (let imageIdx = 0; imageIdx < imageCount; imageIdx++) {
41
- images.push(await geotiff.getImage(imageIdx));
42
- }
43
- const sourceProjection = await geoKeysParser(image.getGeoKeys());
44
- if (!sourceProjection) {
45
- throw new Error("Could not determine source projection from GeoTIFF geo keys");
46
- }
47
- const converter = proj4(sourceProjection.def, "EPSG:4326");
48
- const forwardReproject = (x, y) => converter.forward([x, y], false);
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(image, converter);
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(image.fileDirectory, this.context.device);
58
+ const { getTileData: defaultGetTileData, renderTile: defaultRenderTile } = inferRenderPipeline(geotiff, this.context.device);
58
59
  this.setState({
59
- metadata,
60
- forwardReproject,
61
- inverseReproject,
62
- images,
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, images, metadata) {
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
- const geotiffImage = images[images.length - 1 - z];
75
- const imageHeight = geotiffImage.getHeight();
76
- const imageWidth = geotiffImage.getWidth();
77
- const tileMatrix = metadata.tileMatrices[z];
78
- const { tileWidth, tileHeight } = tileMatrix;
79
- const tileGeotransform = computeTileGeotransform(x, y, tileMatrix);
80
- const { forwardTransform, inverseTransform } = fromGeoTransform(tileGeotransform);
81
- const window = [
82
- x * tileWidth,
83
- y * tileHeight,
84
- Math.min((x + 1) * tileWidth, imageWidth),
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(geotiffImage, {
92
+ const data = await getTileData(image, {
93
93
  device: this.context.device,
94
- window,
94
+ x,
95
+ y,
95
96
  signal: combinedSignal,
96
- pool: this.props.pool || defaultPool(),
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, metadata, forwardReproject, inverseReproject) {
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 || !metadata) {
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 = metadata.projectToWgs84(topLeft);
146
- const topRightWgs84 = metadata.projectToWgs84(topRight);
147
- const bottomRightWgs84 = metadata.projectToWgs84(bottomRight);
148
- const bottomLeftWgs84 = metadata.projectToWgs84(bottomLeft);
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
- renderTileLayer(metadata, forwardReproject, inverseReproject, images) {
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 RasterTileset2DFactory extends RasterTileset2D {
174
+ class TileMatrixSetTilesetFactory extends TileMatrixSetTileset {
172
175
  constructor(opts) {
173
- super(metadata, opts);
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: RasterTileset2DFactory,
179
- getTileData: async (tile) => this._getTileData(tile, images, metadata),
180
- renderSubLayers: (props) => this._renderSubLayers(props, metadata, forwardReproject, inverseReproject),
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 { forwardReproject, inverseReproject, metadata, images } = this.state;
185
- if (!forwardReproject || !inverseReproject || !metadata || !images) {
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(metadata, forwardReproject, inverseReproject, images);
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
@@ -1 +1 @@
1
- {"version":3,"file":"cog-layer.js","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
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 { TileMatrixSet } from "@developmentseed/deck.gl-raster";
2
- import type { GeoTIFF } from "geotiff";
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,EAEV,aAAa,EAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,SAAS,CAAC;AACrD,OAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAkB,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAM9E;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,aAAa,CAAC,CAyFxB;AAED;;;;;;;;;;;;;GAaG;AAEH,iBAAS,aAAa,CACpB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAqBR;AA4GD,eAAO,MAAM,cAAc;;CAE1B,CAAC"}
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"}