CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-geolib

Library to provide basic geospatial operations like distance calculation, conversion of decimal coordinates to sexagesimal and vice versa, etc.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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]));
});

docs

coordinate-conversions.md

distance-calculations.md

geometric-operations.md

index.md

navigation-bearings.md

spatial-queries.md

unit-conversions.md

validation-utilities.md

tile.json