UNPKG

@radarlabs/s2

Version:

Node.js JavaScript and TypeScript bindings for the Google S2 geolocation library.

118 lines (84 loc) 3.4 kB
declare module '@radarlabs/s2' { export type ChildPosition = 0 | 1 | 2 | 3; export class Point { constructor(x: number, y: number, z: number); public x(): number; public y(): number; public z(): number; } export class LatLng { constructor(latDegrees: number, lngDegrees: number); constructor(point: Point); public normalized(): LatLng; public latitude(): number; public longitude(): number; public approxEquals(ll: LatLng, maxErrorRadians?: number): number; public toString(): string; } export class CellId { public constructor(id: bigint); public constructor(token: string); public constructor(ll: LatLng); public id(): bigint; public idString(): string; public token(): string; public contains(other: CellId): boolean; public intersects(other: CellId): boolean; public isLeaf(): boolean; public parent(level?: number): CellId; public child(position: ChildPosition): CellId; public next(): CellId; public level(): number; public rangeMin(): CellId; public rangeMax(): CellId; public static fromToken(token: string): CellId; } export class Cell { public constructor(cellId: CellId); public getVertex(pos: number): Point; public getCenter(): Point; } export class CellUnion { public constructor(tokens: string[]); public constructor(cellIds: CellId[]); public contains(cells: CellId | CellUnion): boolean; public intersects(cells: CellId | CellUnion): boolean; public union(cells: CellUnion): CellUnion; public intersection(cells: CellUnion): CellUnion; public difference(cells: CellUnion): CellUnion; public ids(): BigUint64Array; public cellIds(): CellId[]; public tokens(): string[]; } export interface RegionCovererOptions { min?: number; max?: number; max_cells?: number; } export class RegionCoverer { public static getCoveringIds(lls: LatLng[], options: RegionCovererOptions): BigUint64Array | null; public static getCoveringTokens(lls: LatLng[], options: RegionCovererOptions): string[] | null; public static getCovering(lls: LatLng[], options: RegionCovererOptions): CellUnion | null; public static getRadiusCoveringIds(ll: LatLng, radiusM: number, options: RegionCovererOptions): BigUint64Array | null; public static getRadiusCoveringTokens(ll: LatLng, radiusM: number, options: RegionCovererOptions): string[] | null; public static getRadiusCovering(ll: LatLng, radiusM: number, options: RegionCovererOptions): CellUnion | null; } export class Earth { public static toMeters(a: LatLng, b: LatLng): number; public static getDistanceMeters(a: LatLng, b: LatLng): number; public static toKm(a: LatLng, b: LatLng): number; public static getDistanceKm(a: LatLng, b: LatLng): number; public static getDegrees(a: LatLng, b: LatLng): number; public static getRadians(a: LatLng, b: LatLng): number; public static getInitialBearingDegrees(a: LatLng, b: LatLng): number; } export class Polyline { public constructor(lls: LatLng[]); public contains(cell: Cell): boolean; public nearlyCovers(other: Polyline, maxError: number): boolean; public getLength(): number; public getCentroid(): LatLng; public interpolate(fraction: number): LatLng; public project(ll: LatLng): LatLng; } }