@convex-dev/geospatial
Version:
A geospatial index for Convex
43 lines • 1.39 kB
TypeScript
import { Heap } from "heap-js";
import { ChordAngle, Meters, Point } from "../types.js";
import { Id } from "../_generated/dataModel.js";
import { S2Bindings } from "./s2Bindings.js";
import { QueryCtx } from "../_generated/server.js";
import { Logger } from "./logging.js";
export declare class ClosestPointQuery {
private s2;
private logger;
private point;
private maxDistance;
private maxResults;
private minLevel;
private maxLevel;
private levelMod;
toProcess: Heap<CellCandidate>;
results: Heap<Result>;
maxDistanceChordAngle?: ChordAngle;
constructor(s2: S2Bindings, logger: Logger, point: Point, maxDistance: Meters | undefined, maxResults: number, minLevel: number, maxLevel: number, levelMod: number);
execute(ctx: QueryCtx): Promise<{
key: string;
coordinates: {
latitude: number;
longitude: number;
};
distance: number;
}[]>;
addCandidate(cellID: bigint, level: number, distance: ChordAngle): void;
popCandidate(): CellCandidate | null;
addResult(pointID: Id<"points">, point: Point): void;
distanceThreshold(): ChordAngle | undefined;
}
type CellCandidate = {
cellID: bigint;
level: number;
distance: ChordAngle;
};
type Result = {
pointID: Id<"points">;
distance: ChordAngle;
};
export {};
//# sourceMappingURL=pointQuery.d.ts.map