s2maps-gpu
Version:
S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.
36 lines (35 loc) • 1.47 kB
JavaScript
import { bytesToHeader, getUint64 } from './pmtiles.js';
export const S2_HEADER_SIZE_BYTES = 262;
export const S2_ROOT_SIZE = 98_304;
/**
* Parse raw header bytes into a Header object.
* @param bytes - the raw header bytes
* @returns the parsed header
*/
export function s2BytesToHeader(bytes) {
const baseHeader = bytesToHeader(bytes);
const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
return {
...baseHeader,
rootDirectoryOffset1: getUint64(dv, 102),
rootDirectoryLength1: getUint64(dv, 110),
rootDirectoryOffset2: getUint64(dv, 118),
rootDirectoryLength2: getUint64(dv, 126),
rootDirectoryOffset3: getUint64(dv, 134),
rootDirectoryLength3: getUint64(dv, 142),
rootDirectoryOffset4: getUint64(dv, 150),
rootDirectoryLength4: getUint64(dv, 158),
rootDirectoryOffset5: getUint64(dv, 166),
rootDirectoryLength5: getUint64(dv, 174),
leafDirectoryOffset1: getUint64(dv, 182),
leafDirectoryLength1: getUint64(dv, 190),
leafDirectoryOffset2: getUint64(dv, 198),
leafDirectoryLength2: getUint64(dv, 206),
leafDirectoryOffset3: getUint64(dv, 214),
leafDirectoryLength3: getUint64(dv, 222),
leafDirectoryOffset4: getUint64(dv, 230),
leafDirectoryLength4: getUint64(dv, 238),
leafDirectoryOffset5: getUint64(dv, 246),
leafDirectoryLength5: getUint64(dv, 254),
};
}