From eabceee4c4d9192cb36ba9110e29e21be63c3f91 Mon Sep 17 00:00:00 2001 From: Brandon Liu Date: Sat, 3 Apr 2021 15:14:59 +0800 Subject: [PATCH] fix offsets greater than 32 bits; don't use js bitwise operators --- js/pmtiles.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/js/pmtiles.js b/js/pmtiles.js index 2c5bc83..927f9e2 100644 --- a/js/pmtiles.js +++ b/js/pmtiles.js @@ -7,12 +7,17 @@ root.pmtiles = factory() } }(typeof self !== 'undefined' ? self : this, function () { + const shift = (number, shift) => { + return number * Math.pow(2, shift) + } + + const getUint24 = (dataview, pos) => { - return (dataview.getUint16(pos+1,true) << 8) + dataview.getUint8(pos,true) + return shift(dataview.getUint16(pos+1,true),8) + dataview.getUint8(pos,true) } const getUint48 = (dataview, pos) => { - return (dataview.getUint32(pos+2,true) << 16) + dataview.getUint16(pos,true) + return shift(dataview.getUint32(pos+2,true),16) + dataview.getUint16(pos,true) } const parseHeader = dataview => {