Cómo encontrar la distancia entre dos puntos en un mapa usando JavaScript (TypeScript)

Last updated: 04.01.2026
Views: 126

Si se tienen las coordenadas de dos puntos en un mapa, calcular la distancia entre ellos es bastante sencillo. Este tipo de cálculo se utiliza habitualmente en aplicaciones de mapas, servicios de entrega, sistemas de navegación y funciones basadas en la ubicación. En este ejemplo, nos centraremos en determinar la distancia mediante coordenadas geográficas como la latitud y la longitud. Estos valores nos permiten trabajar con posiciones reales en la superficie terrestre y obtener resultados precisos.

Para calcular la distancia, utilizaremos la fórmula de Haversine, un conocido método matemático para medir la distancia entre dos puntos de una esfera. Dado que la Tierra no es plana, los cálculos lineales simples no son lo suficientemente precisos para este propósito. La fórmula de Haversine tiene en cuenta la curvatura de la Tierra y proporciona una aproximación fiable para la mayoría de los casos prácticos. Esto la convierte en una opción popular en muchos proyectos relacionados con la geolocalización.

En nuestro ejemplo, la distancia final se calculará en metros, lo cual resulta útil para distancias cortas y medias, como rutas a pie o navegación urbana. Si se necesita trabajar con distancias más largas, la misma fórmula se puede adaptar fácilmente para obtener valores en kilómetros. También puede modificar la salida según los requisitos de su aplicación.

El cálculo se implementará en TypeScript, lo que añade un tipado fuerte y una mejor legibilidad al código. Esto facilita el mantenimiento de la solución y la hace más segura en proyectos de mayor envergadura.

TypeScript

type Coord = {
  lat: number;
  lon: number;
};

// Constant for projection (Earth's radius in meters)
const EARTH_RADIUS = 6371000;

// Converting degrees to radians
function degToRad(deg: number) {
  return (deg * Math.PI) / 180;
}

function haversineDistance (point1: Coord, point2: Coord) {
  const { lat: lat1, lon: lon1 } = point1;
  const { lat: lat2, lon: lon2 } = point2;

  const lat1Rad = degToRad(lat1);
  const lon1Rad = degToRad(lon1);
  const lat2Rad = degToRad(lat2);
  const lon2Rad = degToRad(lon2);

  const deltaLat = lat2Rad - lat1Rad;
  const deltaLon = lon2Rad - lon1Rad;

  // Haversine formula
  const a =
    Math.sin(deltaLat / 2) ** 2 +
    Math.cos(lat1Rad) * Math.cos(lat2Rad) * Math.sin(deltaLon / 2) ** 2;
  const c = 2 * Math.asin(Math.sqrt(a));

  return Math.round(EARTH_RADIUS * c);
}
author
Autor: Igor Rybalko
He estado trabajando como desarrollador front-end desde 2014. Mi principal pila tecnológica es Vue.js y WordPress.

Publicaciones similares:

  • Reloj simple de JavaScript
    Existen muchos ejemplos de implementación de relojes usando JavaScript en Internet. Las opciones de implementación pueden ser diferentes, pero por lo general son similare...
  • Cómo crear un plugin jQuery personalizado
    La ventaja del plugin jQuery es que puedes usar el mismo código varias veces para diferentes objetos. En este caso, no es necesario copiar y pegar el código. Además, pued...
  • Menú drop down (jQuery)
    El menú drop down se puede hacer sin JavaScript, solo con la ayuda de CSS. Con :hover. Pero el menú de JavaScript tiene sus ventajas. La más importante es el retraso en l...

Leave a Reply

Your email address will not be published. Required fields are marked *