Distancia entre 2 coordenadas con JavaScript usando fórmula de Haversine

JavaScript: distancia entre 2 coordenadas

En el artículo de hoy te enseñaré a calcular la distancia en kilómetros que existe entre 2 puntos geográficos o 2 coordenadas, tomando las longitudes y latitudes.

Básicamente vamos a saber cuál es la medida que separa ambos puntos obtenidos con el GPS usando la fórmula de Haversine en JavaScript, y esto nos funcionará en el navegador así como en Node.js.

Con esto podríamos ordenar los lugares cercanos dependiendo de la ubicación del usuario, por ejemplo.

Convertir grados a radianes

Lo que tenemos que hacer es implementar la fórmula. Yo la voy a encerrar dentro de una función para que sea reutilizable.

Además de la función en sí, necesitaremos otra función que convierta grados a radianes. Comencemos viendo esa función:

Básicamente es multiplicar los grados por Pi y luego dividir eso entre 180.

Eso es necesario porque las coordenadas están expresadas en grados y nosotros las necesitamos como radianes al usarlas con la fórmula de Haversine y calcular la distancia entre 2 puntos de la tierra con JavaScript.

La fórmula de Haversine – Calcular distancia entre 2 coordenadas con JS

Ahora que ya tenemos la conversión de grados a radianes veamos la fórmula que recibe ambas latitudes y longitudes:

Recuerda que la función devolverá la distancia entre 2 coordenadas expresada en kilómetros, y a partir de ello puedes convertirla a metros, pies, millas, etcétera.

Poniendo todo junto

Veamos un ejemplo para sacar la distancia entre la Ciudad de México y La Habana, lo hago de este modo porque en Google Maps se puede medir la distancia y obtener las coordenadas, así comprobamos que la función que calcula diferencia entre coordenadas con JavaScript funciona.

Al ejecutar el script (ya mencioné que también funciona en el navegador) aparece lo siguiente:

Distancia entre 2 coordenadas con JavaScript usando fórmula de Haversine
Distancia entre 2 coordenadas con JavaScript usando fórmula de Haversine

Como puedes ver, ambas mediciones coinciden. Así de sencillo es medir la distancia entre 2 coordenadas con JS.

Conclusión

A partir de esto ya podemos hacer varias cosas como indicar al usuario los lugares cercanos, usar OpenLayers para seleccionar 2 puntos y medir la distancia, mostrar la distancia en tiempo real y muchas cosas más.

Nota: esto calcula la distancia usando una línea recta (que no es recta porque la tierra no es plana, es por eso que se usa Haversine y no la que calcula la distancia entre 2 puntos de un plano) y no toma en cuenta las calles, montañas y cosas de esas.

Nota 2: esto ya lo hice con C y solo estoy portando la fórmula a JS.

Para terminar te dejo con más tutoriales de JavaScript en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

1 comentario en “JavaScript: distancia entre 2 coordenadas”

Dejar un comentario