Hoy te mostraré cómo calcular la distancia entre dos puntos del globo terráqueo a partir de las coordenadas de los mismos, usando el lenguaje de programación C. Por ejemplo, sabremos la distancia que hay entre dos ciudades o lugares usando solo sus coordenadas.

Al final tendremos un programa en C que nos dirá la distancia que hay entre dos puntos en línea recta, con el resultado en kilómetros que al final podremos convertir a otra unidad como metros o millas.

Por cierto, vamos a usar la fórmula del semiverseno, también conocida como Haversine.

Nota: esto es distinto a calcular la distancia entre dos puntos de un plano cartesiano, aquí vamos a calcular la distancia entre dos puntos geográficos, es decir, dos lugares del planeta Tierra.

Explicación del algoritmo

Para calcular la distancia simplemente nos vamos a basar en la fórmula y la aplicación de la misma, así como la conversión de grados a radianes, ya que necesitamos operar con radianes.

Después, vamos a encerrar la fórmula en una función para separar el código y reutilizarlo cuando sea necesario.

Haversine en C – Distancia entre dos puntos

El método va a recibir los 2 puntos con su latitud y longitud. Así que va a recibir la latitud 1, longitud 1, latitud 2 y longitud 2. Devolverá la distancia en kilómetros:

Como puedes ver en la línea 8 a 11, estamos convirtiendo todas las coordenadas a radianes para poder operar con ellas sin problemas. Después simplemente hacemos los cálculos usando la fórmula a través de las funciones trigonométricas y regresamos el resultado.

Por cierto, fíjate en que dentro de la función usamos a Pi.

Ejemplo: cálculo de distancia en C

Te mostraré el código completo en donde importamos las librerías necesarias y mostramos un ejemplo de uso. En este caso calcularé la distancia que hay entre la CDMX y un lugar de Yucatán.

El código queda así:

Al ejecutarlo, los resultados son correctos. De hecho hice el mismo cálculo con Google maps y los resultados son iguales como puedes observar en la siguiente imagen. Ahí en el código dejé las coordenadas por si quieres comprobarlo a tu manera.

Distancia entre dos coordenadas usando C

Distancia entre dos coordenadas usando C

Ya a partir de esta función tú puedes solicitar datos al usuario para las coordenadas, mostrar lugares cercanos a determinado lugar, etcétera.

Para terminar te dejo el código en línea y más posts sobre C.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 1,477 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: