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:

See the gist on github.

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í:

See the gist on github.

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

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.

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.
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/

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

5 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

5 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

6 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.