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

geometric-operations.mddocs/

Geometric Operations

Functions for calculating centers, bounds, areas, and other geometric properties of coordinate sets.

Capabilities

Center Calculation

Calculates the geometric center (centroid) of multiple points using 3D Cartesian coordinates.

/**
 * Calculate geometric center of multiple points
 * @param points - Array of coordinates
 * @returns Center point coordinates or false if invalid input
 */
function getCenter(points: GeolibInputCoordinates[]): 
  { longitude: number; latitude: number } | false;

Usage Examples:

import { getCenter } from "geolib";

// Find center of multiple locations
const locations = [
  { latitude: 52.516272, longitude: 13.377722 }, // Berlin
  { latitude: 51.515, longitude: 7.453619 },     // Dortmund
  { latitude: 51.503, longitude: -0.119 }        // London
];

const center = getCenter(locations);
console.log(center); // { longitude: 6.904114, latitude: 51.678095 }

// Handle invalid input
const invalidCenter = getCenter([]);
console.log(invalidCenter); // false

Bounding Box Calculation

Calculates the minimum bounding rectangle that contains all given points.

/**
 * Calculate bounding box of multiple points
 * @param points - Array of coordinates (must not be empty)
 * @returns Bounding box with max/min latitude and longitude
 * @throws Error if no points provided
 */
function getBounds(points: GeolibInputCoordinates[]): GeolibBounds;

interface GeolibBounds {
  maxLat: number;
  minLat: number;
  maxLng: number;
  minLng: number;
}

Usage Examples:

import { getBounds } from "geolib";

// Calculate bounds of a region
const regionPoints = [
  { lat: 51.515, lng: 7.453 },
  { lat: 51.516, lng: 7.454 },
  { lat: 51.517, lng: 7.455 },
  { lat: 51.514, lng: 7.452 }
];

const bounds = getBounds(regionPoints);
console.log(bounds);
// {
//   maxLat: 51.517,
//   minLat: 51.514,
//   maxLng: 7.455,
//   minLng: 7.452
// }

Distance-Based Bounds

Calculates the bounding box of all points within a specified distance from a center point.

/**
 * Calculate bounding box of points within distance from center
 * @param point - Center point coordinate
 * @param distance - Radius distance in meters
 * @returns Array with southwest and northeast corner coordinates
 */
function getBoundsOfDistance(
  point: GeolibInputCoordinates, 
  distance: number
): [
  { latitude: number; longitude: number }, 
  { latitude: number; longitude: number }
];

Usage Examples:

import { getBoundsOfDistance } from "geolib";

// Get bounds of 1km radius around a point
const centerPoint = { latitude: 51.515, longitude: 7.453 };
const radius = 1000; // 1km in meters

const [southwest, northeast] = getBoundsOfDistance(centerPoint, radius);
console.log("SW:", southwest); // { latitude: 51.506, longitude: 7.438 }
console.log("NE:", northeast); // { latitude: 51.524, longitude: 7.468 }

Center of Bounds

Calculates the center point of a bounding box.

/**
 * Calculate center point of bounding box
 * @param bounds - Bounding box object
 * @returns Center point coordinates
 */
function getCenterOfBounds(bounds: GeolibBounds): 
  { latitude: number; longitude: number };

Usage Examples:

import { getCenterOfBounds, getBounds } from "geolib";

// First get bounds, then find center
const points = [
  { lat: 51.515, lng: 7.453 },
  { lat: 51.517, lng: 7.455 }
];

const bounds = getBounds(points);
const center = getCenterOfBounds(bounds);
console.log(center); // { latitude: 51.516, longitude: 7.454 }

Polygon Area Calculation

Calculates the surface area of a polygon using spherical geometry.

/**
 * Calculate surface area of polygon in square meters
 * @param points - Array of coordinates defining polygon vertices
 * @returns Area in square meters
 */
function getAreaOfPolygon(points: GeolibInputCoordinates[]): number;

Usage Examples:

import { getAreaOfPolygon, convertArea } from "geolib";

// Calculate area of a park
const parkBoundary = [
  { 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 } // Close the polygon
];

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

// Convert to hectares
const areaInHectares = convertArea(areaInSquareMeters, "ha");
console.log(areaInHectares); // e.g., 1.5 (hectares)

Well-Known Text Conversion

Converts Well-Known Text (WKT) polygon format to coordinate arrays.

/**
 * Convert Well-Known Text polygon to coordinate array
 * @param wkt - WKT polygon string
 * @returns Array of coordinates representing polygon vertices
 */
function wktToPolygon(wkt: string): GeolibInputCoordinates[];

Usage Examples:

import { wktToPolygon, getAreaOfPolygon } from "geolib";

// Convert WKT polygon string
const wktString = "POLYGON((7.453 51.515, 7.454 51.515, 7.454 51.516, 7.453 51.516, 7.453 51.515))";
const polygon = wktToPolygon(wktString);

console.log(polygon);
// [
//   { latitude: 51.515, longitude: 7.453 },
//   { latitude: 51.515, longitude: 7.454 },
//   { latitude: 51.516, longitude: 7.454 },
//   { latitude: 51.516, longitude: 7.453 },
//   { latitude: 51.515, longitude: 7.453 }
// ]

// Use with other functions
const area = getAreaOfPolygon(polygon);
console.log(area); // Area in square meters