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

coordinate-conversions.mddocs/

Coordinate Conversions

Functions for converting between different coordinate formats, including decimal to sexagesimal conversion and coordinate extraction utilities.

Capabilities

Decimal to Sexagesimal Conversion

Converts decimal coordinates to degrees, minutes, seconds format.

/**
 * Convert decimal coordinate to sexagesimal (DMS) format
 * @param decimal - Decimal coordinate value
 * @param format - Output format string (default: "DMS")
 * @returns Formatted sexagesimal coordinate string
 */
function decimalToSexagesimal(decimal: number, format?: string): string;

Usage Examples:

import { decimalToSexagesimal } from "geolib";

// Convert latitude to DMS format
const latDMS = decimalToSexagesimal(51.5103);
console.log(latDMS); // "51° 30′ 37″"

// Convert longitude with custom format
const lngDMS = decimalToSexagesimal(7.49347, "DM");
console.log(lngDMS); // "7° 29.608′"

Sexagesimal to Decimal Conversion

Converts sexagesimal (degrees, minutes, seconds) coordinates to decimal format.

/**
 * Convert sexagesimal coordinate to decimal format
 * @param sexagesimal - Sexagesimal coordinate string (e.g., "51° 30′ 37″ N")
 * @returns Decimal coordinate value
 */
function sexagesimalToDecimal(sexagesimal: string): number;

Usage Examples:

import { sexagesimalToDecimal } from "geolib";

// Convert DMS string to decimal
const decimal = sexagesimalToDecimal("51° 30′ 37″ N");
console.log(decimal); // 51.5103

// Convert longitude
const lngDecimal = sexagesimalToDecimal("7° 29′ 36″ E");
console.log(lngDecimal); // 7.4933

Generic Decimal Conversion

Converts various coordinate formats to decimal, handling objects and arrays.

/**
 * Convert coordinate value to decimal format
 * @param value - Coordinate in various formats (object, array, string, number)
 * @returns Converted coordinate in decimal format
 */
function toDecimal(value: any): any;

Usage Examples:

import { toDecimal } from "geolib";

// Convert object coordinates
const decimalCoords = toDecimal({
  lat: "51° 30′ 37″ N",
  lng: "7° 29′ 36″ E"
});
console.log(decimalCoords); // { lat: 51.5103, lng: 7.4933 }

// Convert array coordinates
const arrayCoords = toDecimal(["7° 29′ 36″ E", "51° 30′ 37″ N"]);
console.log(arrayCoords); // [7.4933, 51.5103]

Coordinate Value Extraction

Extract latitude and longitude values from coordinate objects with flexible property names.

/**
 * Extract latitude value from coordinate object
 * @param point - Coordinate object with lat/latitude property
 * @param raw - If true, returns raw value without conversion (default: false)
 * @returns Latitude value as number, or undefined if not found
 */
function getLatitude(point: GeolibInputCoordinates, raw?: boolean): number | undefined;

/**
 * Extract longitude value from coordinate object
 * @param point - Coordinate object with lng/lon/longitude property
 * @param raw - If true, returns raw value without conversion (default: false)
 * @returns Longitude value as number, or undefined if not found
 */
function getLongitude(point: GeolibInputCoordinates, raw?: boolean): number | undefined;

Usage Examples:

import { getLatitude, getLongitude } from "geolib";

// Extract from various coordinate formats
const lat1 = getLatitude({ lat: 51.5103, lng: 7.49347 });
const lat2 = getLatitude({ latitude: 51.5103, longitude: 7.49347 });
const lat3 = getLatitude([7.49347, 51.5103]); // GeoJSON format

const lng1 = getLongitude({ lat: 51.5103, lng: 7.49347 });
const lng2 = getLongitude({ latitude: 51.5103, lon: 7.49347 });
console.log(lat1, lng1); // 51.5103, 7.49347

// Extract raw values (without decimal conversion)
const rawLat = getLatitude({ lat: "51° 30′ 37″ N" }, true);
console.log(rawLat); // "51° 30′ 37″ N" (raw string)

const convertedLat = getLatitude({ lat: "51° 30′ 37″ N" }); // raw = false (default)
console.log(convertedLat); // 51.5103 (converted to decimal)

Coordinate Key Utilities

Functions for working with coordinate property names and extracting values by key.

/**
 * Get coordinate key from point using flexible key lookup
 * @param point - Coordinate object
 * @param keysToLookup - Array of possible key names to search for
 * @returns First matching key found, or undefined if none match
 */
function getCoordinateKey<Keys>(
  point: GeolibInputCoordinates, 
  keysToLookup: Keys[]
): Keys | undefined;

/**
 * Get all coordinate keys (latitude, longitude, altitude) from input
 * @param point - Coordinate object
 * @param keysToLookup - Optional custom key lookup configuration
 * @returns Object with latitude, longitude, and optionally altitude keys
 */
function getCoordinateKeys(
  point: GeolibInputCoordinates,
  keysToLookup?: {
    longitude: LongitudeKeys[];
    latitude: LatitudeKeys[];
    altitude: AltitudeKeys[];
  }
): {
  latitude: LatitudeKeys | undefined;
  longitude: LongitudeKeys | undefined;
  altitude?: AltitudeKeys | undefined;
};

Usage Examples:

import { getCoordinateKey, getCoordinateKeys, latitudeKeys, longitudeKeys } from "geolib";

// Extract using flexible key lookup arrays
const point = { latitude: 51.5103, longitude: 7.49347 };
const latKey = getCoordinateKey(point, latitudeKeys); // Returns 'latitude'
const lngKey = getCoordinateKey(point, longitudeKeys); // Returns 'longitude'

// Works with different coordinate formats
const point2 = { lat: 51.5103, lng: 7.49347 };
const latKey2 = getCoordinateKey(point2, latitudeKeys); // Returns 'lat'

// Get all coordinate keys
const allKeys = getCoordinateKeys(point);
console.log(allKeys); // { latitude: 'latitude', longitude: 'longitude' }

// With custom key lookup
const customKeys = getCoordinateKeys(point2, {
  latitude: ['lat', 'latitude'],
  longitude: ['lng', 'lon', 'longitude'],
  altitude: ['alt', 'altitude']
});
console.log(customKeys); // { latitude: 'lat', longitude: 'lng' }

Math Conversion Utilities

Basic mathematical conversion functions for angle calculations.

/**
 * Convert degrees to radians
 * @param degrees - Angle in degrees
 * @returns Angle in radians
 */
function toRad(degrees: number): number;

/**
 * Convert radians to degrees
 * @param radians - Angle in radians
 * @returns Angle in degrees
 */
function toDeg(radians: number): number;

Usage Examples:

import { toRad, toDeg } from "geolib";

// Convert degrees to radians for trigonometric calculations
const radians = toRad(90);
console.log(radians); // 1.5708 (π/2)

// Convert back to degrees
const degrees = toDeg(Math.PI);
console.log(degrees); // 180