This commit is contained in:
acalcutt 2024-12-21 18:18:57 -05:00
parent 616717db93
commit 88b8554dbe
3 changed files with 15 additions and 16 deletions

9
package-lock.json generated
View file

@ -32,6 +32,7 @@
"morgan": "1.10.0",
"pbf": "4.0.1",
"pmtiles": "3.0.7",
"pngjs": "^7.0.0",
"proj4": "2.12.1",
"sanitize-filename": "1.6.3",
"sharp": "0.33.5",
@ -6622,6 +6623,14 @@
"fflate": "^0.8.0"
}
},
"node_modules/pngjs": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz",
"integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==",
"engines": {
"node": ">=14.19.0"
}
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",

View file

@ -41,6 +41,7 @@
"morgan": "1.10.0",
"pbf": "4.0.1",
"pmtiles": "3.0.7",
"pngjs": "^7.0.0",
"proj4": "2.12.1",
"sanitize-filename": "1.6.3",
"sharp": "0.33.5",

View file

@ -1,6 +1,7 @@
import sharp from 'sharp';
import mlcontour from '../node_modules/maplibre-contour/dist/index.mjs';
import { getPMtilesTile } from './pmtiles_adapter.js';
import { PNG } from 'pngjs';
/**
* Manages local DEM (Digital Elevation Model) data using maplibre-contour.
@ -60,27 +61,15 @@ export class LocalDemManager {
*/
async getImageData(blob, abortController) {
try {
if (Boolean(abortController?.signal?.aborted)) return null;
const buffer = await blob.arrayBuffer();
const image = sharp(Buffer.from(buffer));
await image.metadata();
if (Boolean(abortController?.signal?.aborted)) return null;
const { data, info } = await image
.raw()
.toBuffer({ resolveWithObject: true });
if (Boolean(abortController?.signal?.aborted)) return null;
const png = PNG.sync.read(Buffer.from(buffer));
const parsed = mlcontour.decodeParsedImage(
info.width,
info.height,
png.width,
png.height,
this.encoding,
data,
png.data,
);
if (Boolean(abortController?.signal?.aborted)) return null;
return parsed;
} catch (error) {
console.error('Error processing image:', error);