Volver a la página principal
lunes 5 agosto 2024
142

🗺️ Cómo Calcular la Distancia entre Dos Puntos de Coordenadas Geográficas en JavaScript 🗺️

¿Por Qué es Importante Calcular la Distancia entre Coordenadas Geográficas?

Entender la distancia entre dos puntos geográficos es crucial para:

  • Aplicaciones de navegación y mapas: Determinar rutas óptimas y tiempos de viaje.
  • Aplicaciones de entrega: Calcular distancias para logística y planificación de rutas.
  • Aplicaciones de fitness: Medir distancias recorridas por los usuarios durante sus actividades físicas.
  • Aplicaciones de servicios basados en la ubicación: Ofrecer recomendaciones y servicios basados en la proximidad.

Fórmula de Haversine

Para calcular la distancia entre dos puntos en la superficie de la Tierra, utilizamos la fórmula de Haversine. Esta fórmula toma en cuenta la curvatura de la Tierra, proporcionando una estimación precisa de la distancia.

La fórmula de Haversine es la siguiente:

$$a = \sin^2\left(\frac{\Delta\varphi}{2}\right) + \cos(\varphi_1) \cdot \cos(\varphi_2) \cdot \sin^2\left(\frac{\Delta\lambda}{2}\right)$$
$$c = 2 \cdot \text{atan2}\left(\sqrt{a}, \sqrt{1-a}\right)$$
$$d = R \cdot c$$

Donde:

$$\varphi_1, \varphi_2$$

son las latitudes de los dos puntos en radianes y

$$\Delta\varphi$$

es la diferencia entre las latitudes de los dos puntos y por otro lado

$$\Delta\lambda$$

es la diferencia entre las longitudes de los dos puntos y

$$R$$

es el radio de la Tierra (6371 km).

Implementación en JavaScript

A continuación, se muestra cómo implementar esta fórmula en JavaScript:

function calcularDistancia(lat1, lon1, lat2, lon2) {
    const R = 6371; // Radio de la Tierra en km
    const dLat = gradosARadianes(lat2 - lat1);
    const dLon = gradosARadianes(lon2 - lon1);
    const a = 
        Math.sin(dLat / 2) * Math.sin(dLat / 2) +
        Math.cos(gradosARadianes(lat1)) * Math.cos(gradosARadianes(lat2)) * 
        Math.sin(dLon / 2) * Math.sin(dLon / 2);
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    const distancia = R * c; // Distancia en km
    return distancia;
}

function gradosARadianes(grados) {
    return grados * (Math.PI / 180);
}

// Ejemplo de uso:
const lat1 = 40.7128; // Latitud de Nueva York
const lon1 = -74.0060; // Longitud de Nueva York
const lat2 = 34.0522; // Latitud de Los Ángeles
const lon2 = -118.2437; // Longitud de Los Ángeles

const distancia = calcularDistancia(lat1, lon1, lat2, lon2);
console.log(`La distancia es ${distancia.toFixed(2)} km`);

Explicación del Código

1. Función calcularDistancia: Esta función toma las coordenadas de dos puntos (latitud y longitud) y calcula la distancia entre ellos utilizando la fórmula de Haversine.

2. Conversión de Grados a Radianes: La función gradosARadianes convierte las coordenadas de grados a radianes, ya que las funciones trigonométricas en JavaScript trabajan con radianes.

3. Ejemplo de Uso: Se proporcionan coordenadas de ejemplo para calcular la distancia entre Nueva York y Los Ángeles.

Conclusión

Calcular la distancia entre dos puntos geográficos en JavaScript es una tarea sencilla cuando se utiliza la fórmula de Haversine. Esta fórmula permite obtener una estimación precisa de la distancia, considerando la curvatura de la Tierra. Este cálculo es esencial para muchas aplicaciones que dependen de la geolocalización y puede ser fácilmente implementado y adaptado a tus necesidades específicas.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer