Skip to content

Commit 9d133b8

Browse files
authored
feat: Add AbortSignal support to GeoTIFF.fetchTile (#243)
1 parent d2c54b7 commit 9d133b8

7 files changed

Lines changed: 25 additions & 23 deletions

File tree

packages/deck.gl-geotiff/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"vitest": "^4.0.18"
4747
},
4848
"dependencies": {
49-
"@cogeotiff/core": "^9.1.2",
49+
"@cogeotiff/core": "^9.2.0",
5050
"@developmentseed/affine": "workspace:^",
5151
"@developmentseed/deck.gl-raster": "workspace:^",
5252
"@developmentseed/geotiff": "workspace:^",

packages/deck.gl-geotiff/src/geotiff/render-pipeline.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,8 @@ function createUnormPipeline(
126126
image: GeoTIFF | Overview,
127127
options: GetTileDataOptions,
128128
) => {
129-
const { device, x, y } = options;
130-
// TODO: pass down signal
131-
const tile = await image.fetchTile(x, y);
129+
const { device, x, y, signal } = options;
130+
const tile = await image.fetchTile(x, y, { signal });
132131
let { array } = tile;
133132

134133
let numSamples = samplesPerPixel;

packages/geotiff/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"@chunkd/source": "^11.1.0",
5151
"@chunkd/source-http": "^11.1.1",
5252
"@chunkd/source-memory": "^11.0.2",
53-
"@cogeotiff/core": "^9.1.2",
53+
"@cogeotiff/core": "^9.2.0",
5454
"@developmentseed/affine": "workspace:^",
5555
"@developmentseed/morecantile": "workspace:^",
5656
"uuid": "^13.0.0"

packages/geotiff/src/fetch.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,17 @@ interface HasTiffReference extends HasTransform {
2727
readonly nodata: number | null;
2828
}
2929

30-
// TODO: add AbortSignal support.
31-
// https://github.com/blacha/cogeotiff/issues/1397
3230
export async function fetchTile(
3331
self: HasTiffReference,
3432
x: number,
3533
y: number,
34+
options: { signal?: AbortSignal } = {},
3635
): Promise<Tile> {
3736
if (self.maskImage != null) {
3837
throw new Error("Mask fetching not implemented yet");
3938
}
4039

41-
const tile = await self.image.getTile(x, y);
40+
const tile = await self.image.getTile(x, y, options);
4241
if (tile === null) {
4342
throw new Error("Tile not found");
4443
}

packages/geotiff/src/geotiff.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -264,10 +264,12 @@ export class GeoTIFF {
264264
// Mixins
265265

266266
/** Fetch a single tile from the full-resolution image. */
267-
// TODO: support AbortSignal
268-
// https://github.com/blacha/cogeotiff/issues/1397
269-
async fetchTile(x: number, y: number): Promise<Tile> {
270-
return await fetchTile(this, x, y);
267+
async fetchTile(
268+
x: number,
269+
y: number,
270+
options: { signal?: AbortSignal } = {},
271+
): Promise<Tile> {
272+
return await fetchTile(this, x, y, options);
271273
}
272274

273275
// Transform mixin

packages/geotiff/src/overview.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,12 @@ export class Overview {
7070
}
7171

7272
/** Fetch a single tile from the full-resolution image. */
73-
// TODO: support AbortSignal
74-
// https://github.com/blacha/cogeotiff/issues/1397
75-
async fetchTile(x: number, y: number): Promise<Tile> {
76-
return await fetchTile(this, x, y);
73+
async fetchTile(
74+
x: number,
75+
y: number,
76+
options: { signal?: AbortSignal } = {},
77+
): Promise<Tile> {
78+
return await fetchTile(this, x, y, options);
7779
}
7880

7981
/**

pnpm-lock.yaml

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)