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

unit-conversions.mddocs/

Unit Conversions

Functions for converting between different units of distance, area, and speed measurements.

Capabilities

Distance Conversion

Converts distance measurements from meters to various other units.

/**
 * Convert distance from meters to target unit
 * @param meters - Distance in meters
 * @param targetUnit - Target unit for conversion (default: 'm')
 * @returns Converted distance value
 * @throws Error if target unit is invalid
 */
function convertDistance(meters: number, targetUnit?: string): number;

Supported Units:

  • m - meters (default)
  • km - kilometers
  • cm - centimeters
  • mm - millimeters
  • mi - miles
  • sm - statute miles
  • ft - feet
  • in - inches
  • yd - yards

Usage Examples:

import { convertDistance, getDistance } from "geolib";

// Calculate distance and convert units
const point1 = { latitude: 51.515, longitude: 7.453 };
const point2 = { latitude: 51.520, longitude: 7.460 };

const distanceMeters = getDistance(point1, point2);
console.log(distanceMeters); // e.g., 748 meters

// Convert to different units
const distanceKm = convertDistance(distanceMeters, "km");
console.log(`${distanceKm.toFixed(2)} km`); // 0.75 km

const distanceMiles = convertDistance(distanceMeters, "mi");
console.log(`${distanceMiles.toFixed(2)} miles`); // 0.46 miles

const distanceFeet = convertDistance(distanceMeters, "ft");
console.log(`${distanceFeet.toFixed(0)} feet`); // 2454 feet

// Batch conversion for route planning
const routeDistances = [1500, 2300, 800]; // meters
const routeInKm = routeDistances.map(d => convertDistance(d, "km"));
console.log(routeInKm); // [1.5, 2.3, 0.8] km

Area Conversion

Converts area measurements from square meters to various other units.

/**
 * Convert area from square meters to target unit
 * @param squareMeters - Area in square meters
 * @param targetUnit - Target unit for conversion (default: 'm' - causes error, use 'm2')
 * @returns Converted area value
 * @throws Error if target unit is invalid
 */
function convertArea(squareMeters: number, targetUnit?: string): number;

Supported Units:

  • m2 or sqm - square meters (use these instead of default)
  • km2 or sqkm - square kilometers
  • ha - hectares
  • a - ares
  • ft2 or sqft - square feet
  • yd2 or sqyd - square yards
  • in2 or sqin - square inches

Usage Examples:

import { convertArea, getAreaOfPolygon } from "geolib";

// Calculate polygon area and convert units
const polygon = [
  { lat: 51.515, lng: 7.453 },
  { lat: 51.516, lng: 7.453 },
  { lat: 51.516, lng: 7.455 },
  { lat: 51.515, lng: 7.455 },
  { lat: 51.515, lng: 7.453 }
];

const areaM2 = getAreaOfPolygon(polygon);
console.log(areaM2); // e.g., 15000 square meters

// Convert to different units
const areaHa = convertArea(areaM2, "ha");
console.log(`${areaHa.toFixed(2)} hectares`); // 1.50 hectares

const areaKm2 = convertArea(areaM2, "km2");
console.log(`${areaKm2.toFixed(4)} km²`); // 0.0150 km²

const areaFt2 = convertArea(areaM2, "ft2");
console.log(`${areaFt2.toFixed(0)} ft²`); // 161459 ft²

// Property size calculations
const propertyArea = 2500; // square meters
const propertyInAcres = convertArea(propertyArea, "a");
console.log(`Property: ${propertyInAcres} ares`);

Speed Conversion

Converts speed measurements from meters per second to various other units.

/**
 * Convert speed from meters per second to target unit
 * @param metersPerSecond - Speed in meters per second
 * @param targetUnit - Target unit for conversion (default: 'kmh')
 * @returns Converted speed value
 */
function convertSpeed(
  metersPerSecond: number, 
  targetUnit?: string
): number;

Supported Units:

  • kmh - kilometers per hour (default)
  • mph - miles per hour
  • Original units if no valid conversion found

Usage Examples:

import { convertSpeed, getSpeed } from "geolib";

// Calculate speed between GPS points
const start = {
  latitude: 51.515,
  longitude: 7.453,
  time: 1640995200000 // Unix timestamp
};

const end = {
  latitude: 51.520,
  longitude: 7.460,
  time: 1640995260000 // 60 seconds later
};

const speedMps = getSpeed(start, end);
console.log(speedMps); // e.g., 12.5 m/s

// Convert to different units
const speedKmh = convertSpeed(speedMps, "kmh");
console.log(`${speedKmh.toFixed(1)} km/h`); // 45.0 km/h

const speedMph = convertSpeed(speedMps, "mph");
console.log(`${speedMph.toFixed(1)} mph`); // 28.0 mph

// Vehicle speed monitoring
const measurements = [
  { speed: 8.3, time: "08:00" },   // m/s
  { speed: 12.5, time: "08:05" },
  { speed: 16.7, time: "08:10" }
];

measurements.forEach(m => {
  const kmh = convertSpeed(m.speed, "kmh");
  const mph = convertSpeed(m.speed, "mph");
  console.log(`${m.time}: ${kmh.toFixed(1)} km/h (${mph.toFixed(1)} mph)`);
});

Unit Conversion Constants

Access to the underlying conversion factors for custom calculations.

// Distance conversion factors (multiply meters by factor)
const distanceConversion: {
  m: number;     // 1
  km: number;    // 0.001
  cm: number;    // 100
  mm: number;    // 1000
  mi: number;    // 1 / 1609.344
  sm: number;    // 1 / 1852.216
  ft: number;    // 100 / 30.48
  in: number;    // 100 / 2.54
  yd: number;    // 1 / 0.9144
};

// Area conversion factors (multiply square meters by factor)
const areaConversion: {
  m2: number;    // 1
  sqm: number;   // 1 (alias)
  km2: number;   // 0.000001
  sqkm: number;  // 0.000001 (alias)
  ha: number;    // 0.0001
  a: number;     // 0.01
  ft2: number;   // 10.763911
  sqft: number;  // 10.763911 (alias)
  yd2: number;   // 1.19599
  sqyd: number;  // 1.19599 (alias)
  in2: number;   // 1550.0031
  sqin: number;  // 1550.0031 (alias)
};

// Time conversion factors (seconds to target unit)
const timeConversion: {
  m: number;     // 60 (minutes)
  h: number;     // 3600 (hours)
  d: number;     // 86400 (days)
};

Usage Examples:

import { distanceConversion, areaConversion } from "geolib";

// Custom conversion using constants
function customDistanceConvert(meters: number, unit: string): number {
  const factor = distanceConversion[unit];
  if (!factor) throw new Error(`Unknown unit: ${unit}`);
  return meters * factor;
}

// Batch conversions
const distances = [100, 500, 1000]; // meters
const unitsToConvert = ['km', 'mi', 'ft'];

unitsToConvert.forEach(unit => {
  console.log(`${unit}:`, distances.map(d => d * distanceConversion[unit]));
});