vgridjs
Version:
Vgrid DGGS JS
92 lines (90 loc) • 2.67 kB
TypeScript
/**
* Mercantile implementation in TypeScript
* Provides functions for working with web mercator tiles
*/
interface Tile {
x: number;
y: number;
z: number;
}
interface Bounds {
west: number;
south: number;
east: number;
north: number;
}
/**
* Convert longitude/latitude to tile coordinates
* @param lng Longitude in degrees
* @param lat Latitude in degrees
* @param zoom Zoom level
* @returns Tile coordinates
*/
declare function tile(lng: number, lat: number, zoom: number): Tile;
/**
* Convert tile coordinates to longitude/latitude bounds
* @param x Tile X coordinate
* @param y Tile Y coordinate
* @param z Zoom level
* @returns Bounds object with west, south, east, north in degrees
*/
declare function bounds(x: number, y: number, z: number): Bounds;
/**
* Convert tile coordinates to quadkey
* @param tile Tile object
* @returns Quadkey string
*/
declare function quadkey(tile: Tile): string;
/**
* Convert quadkey to tile coordinates
* @param quadkey Quadkey string
* @returns Tile object
*/
declare function quadkeyToTile(quadkey: string): Tile;
/**
* Get the parent tile of a tile
* @param tile Tile object
* @returns Parent tile
*/
declare function parent(tile: Tile): Tile;
/**
* Get the children tiles of a tile
* @param tile Tile object
* @returns Array of child tiles
*/
declare function children(tile: Tile): Tile[];
/**
* Get the sibling tiles of a tile
* @param tile Tile object
* @returns Array of sibling tiles
*/
declare function siblings(tile: Tile): Tile[];
/**
* Get the tile coordinates for a point in web mercator coordinates
* @param x Web mercator X coordinate
* @param y Web mercator Y coordinate
* @param zoom Zoom level
* @returns Tile coordinates
*/
declare function xyTile(x: number, y: number, zoom: number): Tile;
/**
* Convert tile coordinates to web mercator coordinates
* @param tile Tile object
* @returns Web mercator coordinates [x, y]
*/
declare function tileToXY(tile: Tile): [number, number];
/**
* Convert longitude/latitude to web mercator coordinates
* @param lng Longitude in degrees
* @param lat Latitude in degrees
* @returns Web mercator coordinates [x, y]
*/
declare function lngLatToXY(lng: number, lat: number): [number, number];
/**
* Convert web mercator coordinates to longitude/latitude
* @param x Web mercator X coordinate
* @param y Web mercator Y coordinate
* @returns Longitude/latitude coordinates [lng, lat]
*/
declare function xyToLngLat(x: number, y: number): [number, number];
export { type Bounds, type Tile, bounds, children, lngLatToXY, parent, quadkey, quadkeyToTile, siblings, tile, tileToXY, xyTile, xyToLngLat };