@developmentseed/deck.gl-geotiff 0.3.0 → 0.4.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.
@@ -14,11 +14,16 @@ import type { EpsgResolver } from "./proj.js";
14
14
  * Minimum interface that **must** be returned from getTileData.
15
15
  */
16
16
  export type MinimalDataT = {
17
+ /** The height of the tile in pixels. */
17
18
  height: number;
19
+ /** The width of the tile in pixels. */
18
20
  width: number;
21
+ /** Byte length of the data, used for cache eviction when `maxCacheByteSize` is set. */
22
+ byteLength?: number;
19
23
  };
20
24
  type DefaultDataT = MinimalDataT & {
21
25
  texture: Texture;
26
+ byteLength: number;
22
27
  };
23
28
  /** Options passed to `getTileData`. */
24
29
  export type GetTileDataOptions = {
@@ -61,7 +66,7 @@ type COGLayerDataProps<DataT extends MinimalDataT> = {
61
66
  /**
62
67
  * Props that can be passed into the {@link COGLayer}.
63
68
  */
64
- export type COGLayerProps<DataT extends MinimalDataT = DefaultDataT> = CompositeLayerProps & COGLayerDataProps<DataT> & {
69
+ export type COGLayerProps<DataT extends MinimalDataT = DefaultDataT> = CompositeLayerProps & Pick<TileLayerProps, "debounceTime" | "maxCacheSize" | "maxCacheByteSize" | "maxRequests" | "refinementStrategy"> & COGLayerDataProps<DataT> & {
65
70
  /**
66
71
  * Cloud-optimized GeoTIFF input.
67
72
  *
@@ -138,6 +143,7 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
138
143
  forwardTo4326?: ReprojectionFns["forwardReproject"];
139
144
  inverseFrom4326?: ReprojectionFns["inverseReproject"];
140
145
  forwardTo3857?: ReprojectionFns["forwardReproject"];
146
+ inverseFrom3857?: ReprojectionFns["inverseReproject"];
141
147
  tms?: TileMatrixSet;
142
148
  defaultGetTileData?: COGLayerProps<TextureDataT>["getTileData"];
143
149
  defaultRenderTile?: COGLayerProps<TextureDataT>["renderTile"];
@@ -155,9 +161,9 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
155
161
  data?: GetTileDataResult<DataT>;
156
162
  _offset: number;
157
163
  tile: Tile2DHeader<GetTileDataResult<DataT>>;
158
- }, tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"]): Layer | LayersList | null;
164
+ }, tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"], forwardTo3857: ReprojectionFns["forwardReproject"], inverseFrom3857: ReprojectionFns["inverseReproject"]): Layer | LayersList | null;
159
165
  /** Define the underlying deck.gl TileLayer. */
160
- renderTileLayer(tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"], forwardTo3857: ReprojectionFns["forwardReproject"], geotiff: GeoTIFF): TileLayer;
166
+ renderTileLayer(tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"], forwardTo3857: ReprojectionFns["forwardReproject"], inverseFrom3857: ReprojectionFns["inverseReproject"], geotiff: GeoTIFF): TileLayer;
161
167
  renderLayers(): TileLayer<any, {}> | null;
162
168
  }
163
169
  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,4 +1,4 @@
1
- import { CompositeLayer } from "@deck.gl/core";
1
+ import { COORDINATE_SYSTEM, CompositeLayer } from "@deck.gl/core";
2
2
  import { TileLayer } from "@deck.gl/geo-layers";
3
3
  import { PathLayer } from "@deck.gl/layers";
4
4
  import { RasterLayer, TileMatrixSetTileset, } from "@developmentseed/deck.gl-raster";
@@ -9,8 +9,24 @@ import wktParser from "wkt-parser";
9
9
  import { fetchGeoTIFF, getGeographicBounds } from "./geotiff/geotiff.js";
10
10
  import { inferRenderPipeline } from "./geotiff/render-pipeline.js";
11
11
  import { fromAffine } from "./geotiff-reprojection.js";
12
- import { epsgResolver } from "./proj.js";
12
+ import { epsgResolver, makeClampedForwardTo3857 } from "./proj.js";
13
+ /** Size of deck.gl's common coordinate space in world units.
14
+ *
15
+ * At zoom 0, one tile covers the whole world (512×512 units); at zoom z, each
16
+ * tile is 512/2^z units.
17
+ */
18
+ const TILE_SIZE = 512;
19
+ /**
20
+ * The size of the globe in web mercator meters.
21
+ */
22
+ const WEB_MERCATOR_METER_CIRCUMFERENCE = 40075016.686;
23
+ /**
24
+ * Scale factor for converting EPSG:3857 meters into deck.gl world units
25
+ * (512×512).
26
+ */
27
+ const WEB_MERCATOR_TO_WORLD_SCALE = TILE_SIZE / WEB_MERCATOR_METER_CIRCUMFERENCE;
13
28
  const defaultProps = {
29
+ ...TileLayer.defaultProps,
14
30
  epsgResolver,
15
31
  debug: false,
16
32
  debugOpacity: 0.5,
@@ -42,6 +58,7 @@ export class COGLayer extends CompositeLayer {
42
58
  forwardTo4326: undefined,
43
59
  inverseFrom4326: undefined,
44
60
  forwardTo3857: undefined,
61
+ inverseFrom3857: undefined,
45
62
  defaultGetTileData: undefined,
46
63
  defaultRenderTile: undefined,
47
64
  });
@@ -61,7 +78,8 @@ export class COGLayer extends CompositeLayer {
61
78
  // @ts-expect-error - proj4 typings are incomplete and don't support
62
79
  // wkt-parser input
63
80
  const converter3857 = proj4(sourceProjection, "EPSG:3857");
64
- const forwardTo3857 = (x, y) => converter3857.forward([x, y], false);
81
+ const forwardTo3857 = makeClampedForwardTo3857((x, y) => converter3857.forward([x, y], false), forwardTo4326);
82
+ const inverseFrom3857 = (x, y) => converter3857.inverse([x, y], false);
65
83
  if (this.props.onGeoTIFFLoad) {
66
84
  const geographicBounds = getGeographicBounds(geotiff, converter4326);
67
85
  this.props.onGeoTIFFLoad(geotiff, {
@@ -81,6 +99,7 @@ export class COGLayer extends CompositeLayer {
81
99
  forwardTo4326,
82
100
  inverseFrom4326,
83
101
  forwardTo3857,
102
+ inverseFrom3857,
84
103
  });
85
104
  }
86
105
  /**
@@ -132,9 +151,12 @@ export class COGLayer extends CompositeLayer {
132
151
  _renderSubLayers(
133
152
  // TODO: it would be nice to have a cleaner type here
134
153
  // this is copy-pasted from the upstream tile layer definition for props.
135
- props, tms, forwardTo4326, inverseFrom4326) {
154
+ props, tms, forwardTo4326, inverseFrom4326, forwardTo3857, inverseFrom3857) {
136
155
  const { maxError, debug, debugOpacity } = this.props;
137
- const { tile } = props;
156
+ // Cast to include TileMetadata from raster-tileset's `getTileMetadata`
157
+ // method.
158
+ // TODO: implement generic handling of tile metadata upstream in TileLayer
159
+ const tile = props.tile;
138
160
  if (!props.data) {
139
161
  return null;
140
162
  }
@@ -154,43 +176,86 @@ export class COGLayer extends CompositeLayer {
154
176
  // `DefaultDataT` at this point.
155
177
  renderPipeline = this.state.defaultRenderTile(data);
156
178
  }
179
+ // viewport.resolution is defined for GlobeView, undefined for WebMercatorViewport.
180
+ // For WebMercator we project the mesh to EPSG:3857 and use a model matrix
181
+ // to map from 3857 meters to deck.gl world space, matching the approach
182
+ // used by the MVTLayer. This avoids per-vertex WGS84→WebMercator linear
183
+ // interpolation errors that become visible at high latitudes.
184
+ const isGlobe = this.context.viewport.resolution !== undefined;
185
+ let reprojectionFns;
186
+ let rasterLayerProps;
187
+ if (isGlobe) {
188
+ reprojectionFns = {
189
+ forwardTransform,
190
+ inverseTransform,
191
+ forwardReproject: forwardTo4326,
192
+ inverseReproject: inverseFrom4326,
193
+ };
194
+ rasterLayerProps = {};
195
+ }
196
+ else {
197
+ reprojectionFns = {
198
+ forwardTransform,
199
+ inverseTransform,
200
+ forwardReproject: forwardTo3857,
201
+ inverseReproject: inverseFrom3857,
202
+ };
203
+ // Scale 3857 meters → deck.gl world units (512×512).
204
+ //
205
+ // coordinateOrigin shifts the world-space origin to (256, 256) so that
206
+ // easting=0 / northing=0 maps to world center. Then the modelMatrix
207
+ //
208
+ // No Y-flip needed: CARTESIAN Y increases upward = northing.
209
+ rasterLayerProps = {
210
+ coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
211
+ coordinateOrigin: [TILE_SIZE / 2, TILE_SIZE / 2, 0],
212
+ // biome-ignore format: array
213
+ modelMatrix: [
214
+ WEB_MERCATOR_TO_WORLD_SCALE, 0, 0, 0,
215
+ 0, WEB_MERCATOR_TO_WORLD_SCALE, 0, 0,
216
+ 0, 0, 1, 0,
217
+ 0, 0, 0, 1
218
+ ],
219
+ };
220
+ }
157
221
  layers.push(new RasterLayer(this.getSubLayerProps({
158
222
  id: `${props.id}-raster`,
159
223
  width,
160
224
  height,
161
225
  renderPipeline,
162
226
  maxError,
163
- reprojectionFns: {
164
- forwardTransform,
165
- inverseTransform,
166
- forwardReproject: forwardTo4326,
167
- inverseReproject: inverseFrom4326,
168
- },
227
+ reprojectionFns,
169
228
  debug,
170
229
  debugOpacity,
230
+ ...rasterLayerProps,
171
231
  })));
172
232
  }
173
233
  if (debug) {
174
- // Get projected bounds from tile data
175
- // getTileMetadata returns data that includes projectedBounds
176
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
- const projectedBounds = tile?.projectedBounds;
178
- if (!projectedBounds || !tms) {
234
+ const { projectedCorners } = tile;
235
+ if (!projectedCorners || !tms) {
179
236
  return [];
180
237
  }
181
- // Project bounds from image CRS to WGS84
182
- const { topLeft, topRight, bottomLeft, bottomRight } = projectedBounds;
238
+ // Create a closed path in WGS84 projection around the tile bounds
239
+ //
240
+ // The tile has a `bbox` field which is already the bounding box in WGS84,
241
+ // but that uses `transformBounds` and densifies edges. So the corners of
242
+ // the bounding boxes don't line up with each other.
243
+ //
244
+ // In this case in the debug mode, it looks better if we ignore the actual
245
+ // non-linearities of the edges and just draw a box connecting the
246
+ // reprojected corners. In any case, the _image itself_ will be densified
247
+ // on the edges as a feature of the mesh generation.
248
+ const { topLeft, topRight, bottomRight, bottomLeft } = projectedCorners;
183
249
  const topLeftWgs84 = forwardTo4326(topLeft[0], topLeft[1]);
184
250
  const topRightWgs84 = forwardTo4326(topRight[0], topRight[1]);
185
251
  const bottomRightWgs84 = forwardTo4326(bottomRight[0], bottomRight[1]);
186
252
  const bottomLeftWgs84 = forwardTo4326(bottomLeft[0], bottomLeft[1]);
187
- // Create a closed path around the tile bounds
188
253
  const path = [
189
254
  topLeftWgs84,
190
255
  topRightWgs84,
191
256
  bottomRightWgs84,
192
257
  bottomLeftWgs84,
193
- topLeftWgs84, // Close the path
258
+ topLeftWgs84,
194
259
  ];
195
260
  layers.push(new PathLayer({
196
261
  id: `${this.id}-${tile.id}-bounds`,
@@ -205,7 +270,7 @@ export class COGLayer extends CompositeLayer {
205
270
  return layers;
206
271
  }
207
272
  /** Define the underlying deck.gl TileLayer. */
208
- renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff) {
273
+ renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, inverseFrom3857, geotiff) {
209
274
  // Create a factory class that wraps COGTileset2D with the metadata
210
275
  class TileMatrixSetTilesetFactory extends TileMatrixSetTileset {
211
276
  constructor(opts) {
@@ -215,18 +280,25 @@ export class COGLayer extends CompositeLayer {
215
280
  });
216
281
  }
217
282
  }
283
+ const { maxRequests, maxCacheSize, maxCacheByteSize, debounceTime, refinementStrategy, } = this.props;
218
284
  return new TileLayer({
219
285
  id: `cog-tile-layer-${this.id}`,
220
286
  TilesetClass: TileMatrixSetTilesetFactory,
221
287
  getTileData: async (tile) => this._getTileData(tile, geotiff, tms),
222
- renderSubLayers: (props) => this._renderSubLayers(props, tms, forwardTo4326, inverseFrom4326),
288
+ renderSubLayers: (props) => this._renderSubLayers(props, tms, forwardTo4326, inverseFrom4326, forwardTo3857, inverseFrom3857),
289
+ debounceTime,
290
+ maxCacheByteSize,
291
+ maxCacheSize,
292
+ maxRequests,
293
+ refinementStrategy,
223
294
  });
224
295
  }
225
296
  renderLayers() {
226
- const { forwardTo4326, inverseFrom4326, forwardTo3857, tms, geotiff } = this.state;
297
+ const { forwardTo4326, inverseFrom4326, forwardTo3857, inverseFrom3857, tms, geotiff, } = this.state;
227
298
  if (!forwardTo4326 ||
228
299
  !inverseFrom4326 ||
229
300
  !forwardTo3857 ||
301
+ !inverseFrom3857 ||
230
302
  !tms ||
231
303
  !geotiff) {
232
304
  return null;
@@ -234,7 +306,7 @@ export class COGLayer extends CompositeLayer {
234
306
  // Split into a separate method to make TS happy, because when metadata is
235
307
  // nullable in any part of function scope, the tileset factory wrapper gives
236
308
  // a type error
237
- return this.renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff);
309
+ return this.renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, inverseFrom3857, geotiff);
238
310
  }
239
311
  }
240
312
  //# 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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"}
@@ -5,6 +5,7 @@ import type { GetTileDataOptions } from "../cog-layer";
5
5
  export type TextureDataT = {
6
6
  height: number;
7
7
  width: number;
8
+ byteLength: number;
8
9
  texture: Texture;
9
10
  mask?: Texture;
10
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../../src/geotiff/render-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAWhF,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAgB,OAAO,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIvD,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAqBF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb;IACD,WAAW,EAAE,CACX,KAAK,EAAE,OAAO,GAAG,QAAQ,EACzB,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,GAAG,YAAY,EAAE,CAAC;CAChE,CAeA"}
1
+ {"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../../src/geotiff/render-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAWhF,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAgB,OAAO,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIvD,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAqBF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb;IACD,WAAW,EAAE,CACX,KAAK,EAAE,OAAO,GAAG,QAAQ,EACzB,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,GAAG,YAAY,EAAE,CAAC;CAChE,CAeA"}
@@ -92,6 +92,7 @@ function createUnormPipeline(geotiff, device) {
92
92
  height,
93
93
  bytesPerPixel,
94
94
  });
95
+ let byteLength = textureData.byteLength;
95
96
  const texture = device.createTexture({
96
97
  data: textureData,
97
98
  format: textureFormat,
@@ -114,10 +115,12 @@ function createUnormPipeline(geotiff, device) {
114
115
  height,
115
116
  sampler: samplerOptions,
116
117
  });
118
+ byteLength += mask.byteLength;
117
119
  }
118
120
  return {
119
121
  texture,
120
122
  mask: maskTexture,
123
+ byteLength,
121
124
  height: array.height,
122
125
  width: array.width,
123
126
  };
@@ -1 +1 @@
1
- {"version":3,"file":"render-pipeline.js","sourceRoot":"","sources":["../../src/geotiff/render-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-pipeline.js","sourceRoot":"","sources":["../../src/geotiff/render-pipeline.ts"],"names":[],"mappings":"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"}
package/dist/proj.d.ts CHANGED
@@ -1,4 +1,24 @@
1
1
  import type { ProjectionDefinition } from "wkt-parser";
2
+ /**
3
+ * Wrap a proj4 forward projection to EPSG:3857 so that it never returns NaN.
4
+ *
5
+ * proj4 returns [NaN, NaN] for points at the poles (lat = ±90°) because the
6
+ * Mercator projection is undefined there. The wrapper falls back to:
7
+ * 1. Project the input to WGS84 via `forwardTo4326`
8
+ * 2. Clamp the latitude to the Web Mercator limit (±85.05°)
9
+ * 3. Convert analytically from WGS84 to EPSG:3857
10
+ *
11
+ * This correctly handles any input CRS, not just EPSG:4326.
12
+ *
13
+ * NOTE: An identical copy of this function lives in `raster-tile-traversal.ts`.
14
+ * The two packages cannot share code due to their dependency relationship
15
+ * (deck.gl-geotiff depends on deck.gl-raster, not vice versa). If this logic
16
+ * changes, update both copies.
17
+ *
18
+ * Perhaps in the future we'll make a `@developmentseed/projections` package to
19
+ * hold shared projection utilities like this. *
20
+ */
21
+ export declare function makeClampedForwardTo3857(forwardTo3857: (x: number, y: number) => [number, number], forwardTo4326: (x: number, y: number) => [number, number]): (x: number, y: number) => [number, number];
2
22
  export type EpsgResolver = (epsg: number) => Promise<ProjectionDefinition>;
3
23
  export declare function epsgResolver(epsg: number): Promise<ProjectionDefinition>;
4
24
  //# sourceMappingURL=proj.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proj.d.ts","sourceRoot":"","sources":["../src/proj.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQvD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE3E,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,iCAc9C"}
1
+ {"version":3,"file":"proj.d.ts","sourceRoot":"","sources":["../src/proj.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoBvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EACzD,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GACxD,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5C;AAOD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE3E,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,iCAc9C"}
package/dist/proj.js CHANGED
@@ -1,4 +1,48 @@
1
1
  import wktParser from "wkt-parser";
2
+ const WGS84_ELLIPSOID_A = 6378137;
3
+ // Maximum latitude representable in Web Mercator (EPSG:3857), in degrees.
4
+ // Beyond this, the Mercator projection is undefined.
5
+ const MAX_WEB_MERCATOR_LAT = 85.05112877980659;
6
+ /**
7
+ * Convert a WGS84 longitude/latitude to EPSG:3857 meters analytically.
8
+ * Valid for latitudes in [-MAX_WEB_MERCATOR_LAT, MAX_WEB_MERCATOR_LAT].
9
+ */
10
+ function wgs84To3857(lon, lat) {
11
+ const x = (lon * Math.PI * WGS84_ELLIPSOID_A) / 180;
12
+ const latRad = (lat * Math.PI) / 180;
13
+ const y = Math.log(Math.tan(Math.PI / 4 + latRad / 2)) * WGS84_ELLIPSOID_A;
14
+ return [x, y];
15
+ }
16
+ /**
17
+ * Wrap a proj4 forward projection to EPSG:3857 so that it never returns NaN.
18
+ *
19
+ * proj4 returns [NaN, NaN] for points at the poles (lat = ±90°) because the
20
+ * Mercator projection is undefined there. The wrapper falls back to:
21
+ * 1. Project the input to WGS84 via `forwardTo4326`
22
+ * 2. Clamp the latitude to the Web Mercator limit (±85.05°)
23
+ * 3. Convert analytically from WGS84 to EPSG:3857
24
+ *
25
+ * This correctly handles any input CRS, not just EPSG:4326.
26
+ *
27
+ * NOTE: An identical copy of this function lives in `raster-tile-traversal.ts`.
28
+ * The two packages cannot share code due to their dependency relationship
29
+ * (deck.gl-geotiff depends on deck.gl-raster, not vice versa). If this logic
30
+ * changes, update both copies.
31
+ *
32
+ * Perhaps in the future we'll make a `@developmentseed/projections` package to
33
+ * hold shared projection utilities like this. *
34
+ */
35
+ export function makeClampedForwardTo3857(forwardTo3857, forwardTo4326) {
36
+ return (x, y) => {
37
+ const [px, py] = forwardTo3857(x, y);
38
+ if (Number.isFinite(px) && Number.isFinite(py)) {
39
+ return [px, py];
40
+ }
41
+ const [lon, lat] = forwardTo4326(x, y);
42
+ const clampedLat = Math.max(-MAX_WEB_MERCATOR_LAT, Math.min(MAX_WEB_MERCATOR_LAT, lat));
43
+ return wgs84To3857(lon, clampedLat);
44
+ };
45
+ }
2
46
  /**
3
47
  * A global registry holding parsed projection definitions.
4
48
  */
package/dist/proj.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proj.js","sourceRoot":"","sources":["../src/proj.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAIpE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3B,8EAA8E;IAC9E,kBAAkB;IAClB,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,mBAAmB,IAAI,OAAO,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"proj.js","sourceRoot":"","sources":["../src/proj.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,0EAA0E;AAC1E,qDAAqD;AACrD,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAE/C;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW;IAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,GAAG,GAAG,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;IAC3E,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAyD,EACzD,aAAyD;IAEzD,OAAO,CAAC,CAAS,EAAE,CAAS,EAAoB,EAAE;QAChD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,oBAAoB,EACrB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CACpC,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAIpE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3B,8EAA8E;IAC9E,kBAAkB;IAClB,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,mBAAmB,IAAI,OAAO,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@developmentseed/deck.gl-geotiff",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "GeoTIFF and Cloud-Optimized GeoTIFF visualization in deck.gl",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,13 +41,13 @@
41
41
  "dependencies": {
42
42
  "@cogeotiff/core": "^9.4.0",
43
43
  "flatbush": "^4.5.0",
44
- "proj4": "^2.20.3",
44
+ "proj4": "^2.20.4",
45
45
  "wkt-parser": "^1.5.3",
46
- "@developmentseed/affine": "^0.3.0",
47
- "@developmentseed/deck.gl-raster": "^0.3.0",
48
- "@developmentseed/geotiff": "^0.3.0",
49
- "@developmentseed/morecantile": "^0.3.0",
50
- "@developmentseed/raster-reproject": "^0.3.0"
46
+ "@developmentseed/geotiff": "^0.4.0",
47
+ "@developmentseed/deck.gl-raster": "^0.4.0",
48
+ "@developmentseed/raster-reproject": "^0.4.0",
49
+ "@developmentseed/morecantile": "^0.4.0",
50
+ "@developmentseed/affine": "^0.4.0"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@deck.gl/core": "^9.2.7",