UNPKG

s2maps-gpu

Version:

S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.

105 lines (104 loc) 3.04 kB
import type { Compression } from '../../index.js'; /** A tile, in the format of ZXY. */ export type FlatTile = [zoom: number, x: number, y: number]; /** PMTiles v3 directory entry. */ export interface Entry { tileID: number; offset: number; length: number; runLength: number; } /** * Describe the type of tiles stored in the archive. * 0 is unknown/other, 1 is a vector tile spec. */ export declare const TileType: { /** unknown/other. */ readonly Unknown: 0; /** Vector tiles. */ readonly Pbf: 1; /** Image tiles. */ readonly Png: 2; /** Image tiles. */ readonly Jpeg: 3; /** Image tiles. */ readonly Webp: 4; /** Image tiles. */ readonly Avif: 5; }; /** * Enum representing a tile types stored in the archive. * 0 = unknown type * 1 = PBF * 2 = PNG * 3 = JPEG * 4 = WEBP * 5 = AVIF */ export type TileType = (typeof TileType)[keyof typeof TileType]; /** * PMTiles v3 header storing basic archive-level information. */ export interface Header { specVersion: number; rootDirectoryOffset: number; rootDirectoryLength: number; jsonMetadataOffset: number; jsonMetadataLength: number; leafDirectoryOffset: number; leafDirectoryLength?: number; tileDataOffset: number; tileDataLength?: number; numAddressedTiles: number; numTileEntries: number; numTileContents: number; clustered: boolean; internalCompression: Compression; tileCompression: Compression; tileType: TileType; minZoom: number; maxZoom: number; etag?: string; } export declare const HEADER_SIZE_BYTES = 127; export declare const ROOT_SIZE = 16384; /** * Convert Z,X,Y to a Hilbert TileID. * @param zoom - the zoom level * @param x - the x coordinate * @param y - the y coordinate * @returns - the Hilbert encoded TileID */ export declare function zxyToTileID(zoom: number, x: number, y: number): number; /** * Convert a Hilbert TileID to Z,X,Y. * @param i - the encoded tile ID * @returns - the decoded Z,X,Y */ export declare function tileIDToZxy(i: number): FlatTile; /** * Low-level function for looking up a TileID or leaf directory inside a directory. * @param entries - the directory entries * @param tileID - the tile ID * @returns the entry associated with the tile, or null if not found */ export declare function findTile(entries: Entry[], tileID: number): Entry | null; /** * Parse raw header bytes into a Header object. * @param bytes - the raw header bytes * @returns the parsed header */ export declare function bytesToHeader(bytes: Uint8Array): Header; /** * Deserialize a directory from a Uint8Array. * @param buffer - the buffer to deserialize * @returns - the deserialized entries */ export declare function deserializeDir(buffer: Uint8Array): Entry[]; /** * Get a 64-bit number from a DataView * @param dv - a DataView * @param offset - the offset in the DataView * @returns - the decoded 64-bit number */ export declare function getUint64(dv: DataView, offset: number): number;