or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/npm-turf--distance

Calculates the distance between two geographic coordinates using the Haversine formula

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@turf/distance@7.2.x

To install, run

npx @tessl/cli install tessl/npm-turf--distance@7.2.0

index.mddocs/

@turf/distance

@turf/distance calculates the distance between two geographic coordinates using the Haversine formula to account for Earth's curvature. It supports multiple units of measurement and accepts coordinates in various formats.

Package Information

  • Package Name: @turf/distance
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install @turf/distance

Core Imports

import { distance } from "@turf/distance";

For default import:

import distance from "@turf/distance";

For CommonJS:

const { distance } = require("@turf/distance");

Basic Usage

import { distance } from "@turf/distance";
import { point } from "@turf/helpers";

// Using Point Features
const from = point([-75.343, 39.984]);
const to = point([-75.534, 39.123]);
const distanceInKm = distance(from, to);
console.log(distanceInKm); // ~97.15 kilometers

// Using coordinate arrays
const distanceInMiles = distance(
  [-75.343, 39.984],
  [-75.534, 39.123],
  { units: "miles" }
);
console.log(distanceInMiles); // ~60.35 miles

Capabilities

Distance Calculation

Calculates the distance between two coordinates using the Haversine formula.

/**
 * Calculates the distance between two coordinates in degrees, radians, miles, or kilometers.
 * This uses the Haversine formula to account for global curvature.
 * @param from - Origin coordinate
 * @param to - Destination coordinate  
 * @param options - Optional parameters (defaults to empty object)
 * @returns Distance between the two coordinates
 */
function distance(
  from: Coord,
  to: Coord,
  options: {
    units?: Units;
  } = {}
): number;

// Also available as default export
export default distance;
export { distance };

Parameters:

  • from: Coord - Origin coordinate (Point Feature, Point geometry, or Position array)
  • to: Coord - Destination coordinate (Point Feature, Point geometry, or Position array)
  • options: Object - Optional parameters object (defaults to empty object)
    • options.units?: Units - Unit of measurement for distance calculation (default: "kilometers")

Returns: number - Distance between the two coordinates in the specified units

Usage Examples:

import { distance } from "@turf/distance";
import { point } from "@turf/helpers";

// Different coordinate input formats
const pointFeature = point([0, 0]);
const pointGeometry = { type: "Point", coordinates: [1, 1] };
const positionArray = [2, 2];

// All these work as coordinate inputs
const dist1 = distance(pointFeature, pointGeometry);
const dist2 = distance(positionArray, [3, 3]);
const dist3 = distance([0, 0], [1, 1], { units: "miles" });

// Different units
const kilometers = distance([0, 0], [1, 1]); // default
const miles = distance([0, 0], [1, 1], { units: "miles" });
const meters = distance([0, 0], [1, 1], { units: "meters" });
const degrees = distance([0, 0], [1, 1], { units: "degrees" });
const radians = distance([0, 0], [1, 1], { units: "radians" });
const nauticalMiles = distance([0, 0], [1, 1], { units: "nauticalmiles" });

Types

/**
 * Coordinate input type - accepts Point Features, Point geometries, or coordinate arrays
 */
type Coord = Feature<Point> | Point | Position;

/**
 * Point Feature from GeoJSON
 */
interface Feature<Point> {
  type: "Feature";
  geometry: Point;
  properties?: GeoJsonProperties;
}

/**
 * Point geometry from GeoJSON
 */
interface Point {
  type: "Point";
  coordinates: Position;
}

/**
 * Position array representing [longitude, latitude]
 */
type Position = [number, number];

/**
 * GeoJSON properties object (can be any object or null)
 */
type GeoJsonProperties = { [name: string]: any } | null;

/**
 * Supported distance measurement units
 */
type Units =
  | "meters"
  | "metres" 
  | "millimeters"
  | "millimetres"
  | "centimeters"
  | "centimetres"
  | "kilometers"
  | "kilometres"
  | "miles"
  | "nauticalmiles"
  | "inches"
  | "yards"
  | "feet"
  | "radians"
  | "degrees";

Error Handling

The function throws errors in the following cases:

  • Invalid coordinates: When coordinate inputs cannot be parsed (handled by getCoord from @turf/invariant)
  • Invalid units: When an unsupported unit string is provided (handled by radiansToLength from @turf/helpers)
import { distance } from "@turf/distance";
import { point } from "@turf/helpers";

try {
  // This will throw an error due to invalid units
  const result = distance(
    point([0, 0]), 
    point([1, 1]), 
    { units: "invalid-unit" as any }
  );
} catch (error) {
  console.error("Invalid units provided:", error.message);
}