11 KiB
11 KiB
@suaveplan/geo - Abstract spherical and ellipsoidal geometry — pure math with no planet-specific constants.
Summary
Abstract spherical and ellipsoidal geometry — pure math with no planet-specific constants. Every operation that needs a body's shape takes an explicit Ellipsoid parameter.
Documentation tree
- angular — (no submodules)
- angular — (no submodules)
- bearing — (no submodules)
- bearing — (no submodules)
- bounds — (no submodules)
- bounds — (no submodules)
- distance — (no submodules)
- distance — (no submodules)
- ellipsoid — (no submodules)
- ellipsoid — (no submodules)
- observability — OpenTelemetry tracer wrapper for
@suaveplan/geo.- observability — OpenTelemetry tracer wrapper for
@suaveplan/geo.
- observability — OpenTelemetry tracer wrapper for
- polygon — (no submodules)
- polygon — (no submodules)
- transforms — (no submodules)
- transforms — (no submodules)
- types — (no submodules)
- units — (no submodules)
- units — (no submodules)
- types — (no submodules)- units — (no submodules)- units — (no submodules)- observability — OpenTelemetry tracer wrapper for
@suaveplan/geo. - angular — (no submodules)- bearing — (no submodules)- bearing — (no submodules)- bounds — (no submodules)- bounds — (no submodules)- distance — (no submodules)- distance — (no submodules)- ellipsoid — (no submodules)- ellipsoid — (no submodules)- polygon — (no submodules)- polygon — (no submodules)- transforms — (no submodules)- transforms — (no submodules)- types — (no submodules)- schemas — The
schemasmodule exports Zod schemas that validate every public geometric type defined in@suaveplan/geo. The sch…- types — (no submodules)- units — (no submodules)- units — (no submodules)- observability — OpenTelemetry tracer wrapper for
@suaveplan/geo.
- types — (no submodules)- units — (no submodules)- units — (no submodules)- observability — OpenTelemetry tracer wrapper for
- angular — (no submodules)- bearing — (no submodules)- bearing — (no submodules)- bounds — (no submodules)- bounds — (no submodules)- distance — (no submodules)- distance — (no submodules)- ellipsoid — (no submodules)- ellipsoid — (no submodules)- polygon — (no submodules)- polygon — (no submodules)- transforms — (no submodules)- transforms — (no submodules)- types — (no submodules)- schemas — The
schemasmodule exports Zod schemas that validate every public geometric type defined in@suaveplan/geo. The sch…- types — (no submodules)- units — (no submodules)- units — (no submodules)- observability — OpenTelemetry tracer wrapper for
@suaveplan/geo.
- types — (no submodules)- units — (no submodules)- units — (no submodules)- observability — OpenTelemetry tracer wrapper for
- angular — (no submodules)- bearing — (no submodules) - bearing — (no submodules)- bounds — (no submodules) - bounds — (no submodules)- distance — (no submodules) - distance — (no submodules)- ellipsoid — (no submodules) - ellipsoid — (no submodules)- polygon — (no submodules) - polygon — (no submodules)- transforms — (no submodules) - transforms — (no submodules)- types — (no submodules) - schemas — The
schemasmodule exports Zod schemas that validate every public geometric type defined in@suaveplan/geo. The sch…- types — (no submodules)- units — (no submodules) - units — (no submodules)- observability — OpenTelemetry tracer wrapper for
@suaveplan/geo.
- types — (no submodules)- units — (no submodules) - units — (no submodules)- observability — OpenTelemetry tracer wrapper for
Install
bun add @suaveplan/geo
Quick start
import { defineEllipsoid, greatCircleDistance, bearing, destination } from "@suaveplan/geo";
const wgs84 = defineEllipsoid(6_378_137, 6_356_752.314245);
const london = { latitude: 51.5074, longitude: -0.1278 };
const paris = { latitude: 48.8566, longitude: 2.3522 };
console.log(greatCircleDistance(london, paris, wgs84, "kilometre")); // ~344
console.log(bearing(london, paris)); // ~154°
Modules
src/ellipsoid/ellipsoid.md—Ellipsoid,defineEllipsoidsrc/transforms/transforms.md—sphericalToCartesian,cartesianToSpherical,toRadians,toDegreessrc/distance/distance.md—greatCircleDistance,vincentyDistancesrc/bearing/bearing.md—bearing,destination,midpointsrc/angular/angular.md—angularSeparationsrc/bounds/bounds.md—BoundingBox,createBoundingBox,containsPoint,expandBox,mergeBoxes,intersectssrc/polygon/polygon.md—pointInPolygon,polygonArea,polygonPerimeter,simplifyPolygonsrc/units/units.md—DistanceUnit,convertDistancesrc/types/types.md— Zod schemas for all public types