UNPKG

s2-tools

Version:

A collection of geospatial tools primarily designed for WGS84, Web Mercator, and S2.

121 lines 3.58 kB
/** 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; } /** * Enum representing a compression algorithm used. * 0 = unknown compression, for if you must use a different or unspecified algorithm. * 1 = no compression. * 2 = gzip * 3 = brotli * 4 = zstd */ export declare enum Compression { /** unknown compression, for if you must use a different or unspecified algorithm. */ Unknown = 0, /** no compression. */ None = 1, /** gzip. */ Gzip = 2, /** brotli. */ Brotli = 3, /** zstd. */ Zstd = 4 } /** * Provide a decompression implementation that acts on `buf` and returns decompressed data. * * Should use the native DecompressionStream on browsers, zlib on node. * Should throw if the compression algorithm is not supported. */ export type DecompressFunc = (buf: Uint8Array, compression: Compression) => Promise<Uint8Array>; /** * Describe the type of tiles stored in the archive. * 0 is unknown/other, 1 is a vector tile spec. */ export declare enum TileType { /** unknown/other. */ Unknown = 0, /** Vector tiles. */ Pbf = 1, /** Image tiles. */ Png = 2, /** Image tiles. */ Jpeg = 3, /** Image tiles. */ Webp = 4, /** Image tiles. */ Avif = 5 } /** * 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; //# sourceMappingURL=pmtiles.d.ts.map