Functions for converting between different units of distance, area, and speed measurements.
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 - kilometerscm - centimetersmm - millimetersmi - milessm - statute milesft - feetin - inchesyd - yardsUsage 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] kmConverts 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 kilometersha - hectaresa - aresft2 or sqft - square feetyd2 or sqyd - square yardsin2 or sqin - square inchesUsage 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`);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 hourUsage 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)`);
});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]));
});