or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

coordinate-conversions.mddistance-calculations.mdgeometric-operations.mdindex.mdnavigation-bearings.mdspatial-queries.mdunit-conversions.mdvalidation-utilities.md
tile.json

distance-calculations.mddocs/

Distance Calculations

Core distance measurement functions using various algorithms from simple spherical calculations to high-precision geodetic formulas.

Capabilities

Distance Calculation (Simple)

Calculates the distance between two points using the spherical law of cosines formula.

/**
 * Calculate distance between two coordinates using spherical formula
 * @param from - Starting coordinate
 * @param to - Destination coordinate  
 * @param accuracy - Precision for rounding (default: 1 meter)
 * @returns Distance in meters
 */
function getDistance(
  from: GeolibInputCoordinates, 
  to: GeolibInputCoordinates, 
  accuracy?: number
): number;

Usage Examples:

import { getDistance } from "geolib";

// Basic distance calculation
const distance = getDistance(
  { latitude: 51.5103, longitude: 7.49347 },
  { latitude: 51.514, longitude: 7.4138 }
);
console.log(distance); // 5504 (meters)

// Using different coordinate formats
const distanceGeoJSON = getDistance(
  [7.49347, 51.5103], // [lng, lat] format
  [7.4138, 51.514]
);

// With custom accuracy
const preciseDistance = getDistance(
  { lat: 51.5103, lng: 7.49347 },
  { lat: 51.514, lng: 7.4138 },
  0.01 // Round to centimeter precision
);

Precise Distance Calculation

Calculates distance using Vincenty's inverse formula for ellipsoids, providing higher accuracy especially for long distances.

/**
 * Calculate distance using high-precision Vincenty formula
 * @param start - Starting coordinate
 * @param end - Destination coordinate
 * @param accuracy - Precision for rounding (default: 1 meter)
 * @returns Distance in meters with high precision
 */
function getPreciseDistance(
  start: GeolibInputCoordinates, 
  end: GeolibInputCoordinates, 
  accuracy?: number
): number;

Usage Examples:

import { getPreciseDistance } from "geolib";

// High-precision distance (more accurate for long distances)
const preciseDistance = getPreciseDistance(
  { latitude: 40.7589, longitude: -73.9851 }, // New York
  { latitude: 34.0522, longitude: -118.2437 }  // Los Angeles
);
console.log(preciseDistance); // 3944420 (meters, very precise)

// Compare with simple distance
const simpleDistance = getDistance(
  { latitude: 40.7589, longitude: -73.9851 },
  { latitude: 34.0522, longitude: -118.2437 }
);
console.log(simpleDistance); // 3944416 (slightly different)

Distance From Line

Calculates the shortest distance from a point to a line segment.

/**
 * Calculate shortest distance from point to line segment
 * @param point - Point coordinate
 * @param lineStart - Line segment start coordinate
 * @param lineEnd - Line segment end coordinate
 * @returns Distance in meters from point to line
 */
function getDistanceFromLine(
  point: GeolibInputCoordinates,
  lineStart: GeolibInputCoordinates, 
  lineEnd: GeolibInputCoordinates
): number;

Usage Examples:

import { getDistanceFromLine } from "geolib";

// Distance from point to road segment
const distanceToRoad = getDistanceFromLine(
  { lat: 51.516, lng: 7.456 }, // Point location
  { lat: 51.515, lng: 7.45 },   // Road start
  { lat: 51.517, lng: 7.46 }    // Road end
);
console.log(distanceToRoad); // Distance in meters

Path Length

Calculates the total length of a path through multiple points.

/**
 * Calculate total length of path through multiple points
 * @param points - Array of coordinates defining the path
 * @param distanceFn - Optional custom distance function (default: getDistance)
 * @returns Total path length in meters
 */
function getPathLength(
  points: GeolibInputCoordinates[], 
  distanceFn?: (
    from: GeolibInputCoordinates, 
    to: GeolibInputCoordinates
  ) => number
): number;

Usage Examples:

import { getPathLength, getPreciseDistance } from "geolib";

// Calculate route length
const routePoints = [
  { lat: 51.515, lng: 7.453 },
  { lat: 51.516, lng: 7.454 },
  { lat: 51.517, lng: 7.455 },
  { lat: 51.518, lng: 7.456 }
];

const routeLength = getPathLength(routePoints);
console.log(routeLength); // Total distance in meters

// Using high-precision distance function
const preciseRouteLength = getPathLength(routePoints, getPreciseDistance);
console.log(preciseRouteLength);