From 0c19728cc238a7a5f4f5f0ba53a5a8a15b1b88b4 Mon Sep 17 00:00:00 2001 From: Andrew Calcutt Date: Mon, 9 Oct 2023 12:07:51 -0400 Subject: [PATCH] fix: don't unzip data, it is already done the pmtiles getZxy function already decompresses the file Signed-off-by: Andrew Calcutt --- src/serve_data.js | 11 +---------- src/serve_rendered.js | 14 +------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/src/serve_data.js b/src/serve_data.js index 3d9caca..bb80d06 100644 --- a/src/serve_data.js +++ b/src/serve_data.js @@ -51,7 +51,6 @@ export const serve_data = { return res.status(404).send('Out of bounds'); } if (tileJSONExtension === 'pmtiles') { - let isGzipped; let tileinfo = await GetPMtilesTile(item.source, z, x, y); if (tileinfo == undefined || tileinfo.data == undefined) { return res.status(404).send('Not found'); @@ -59,13 +58,7 @@ export const serve_data = { let data = tileinfo.data; let headers = tileinfo.header; if (tileJSONFormat === 'pbf') { - isGzipped = - data.slice(0, 2).indexOf(Buffer.from([0x1f, 0x8b])) === 0; if (options.dataDecoratorFunc) { - if (isGzipped) { - data = zlib.unzipSync(data); - isGzipped = false; - } data = options.dataDecoratorFunc(id, 'data', data, z, x, y); } } @@ -99,9 +92,7 @@ export const serve_data = { headers['Content-Encoding'] = 'gzip'; res.set(headers); - if (!isGzipped) { - data = zlib.gzipSync(data); - } + data = zlib.gzipSync(data); return res.status(200).send(data); } diff --git a/src/serve_rendered.js b/src/serve_rendered.js index 4f067bd..d0eaa24 100644 --- a/src/serve_rendered.js +++ b/src/serve_rendered.js @@ -1281,22 +1281,12 @@ export const serve_rendered = { return; } else { const response = {}; + response.data = data; if (headers['Last-Modified']) { response.modified = new Date(headers['Last-Modified']); } if (format === 'pbf') { - try { - response.data = zlib.unzipSync(data); - } catch (err) { - console.log( - 'Skipping incorrect header for tile mbtiles://%s/%s/%s/%s.pbf', - id, - z, - x, - y, - ); - } if (options.dataDecoratorFunc) { response.data = options.dataDecoratorFunc( sourceId, @@ -1307,8 +1297,6 @@ export const serve_rendered = { y, ); } - } else { - response.data = data; } callback(null, response);