Esta es una función que puedes agregar a tu Excel para calcular la distancia entre dos coordenadas geográficas por medio de la Fórmula del Haversine.
Comparto un pequeño módulo, que podrás descargarlo al final del artículo, que podrás insertar a tu Archivo Excel cuando requieras calcular la distancia entre dos coordenadas geográficas.
¿Qué es la fórmula del Haversine?
Todo lo puedes leer desde [Wikipedia]
De manera resumida, se puede estimar la distancia mediante la siguiente ecuación:
Consideraciones
- Las Latitudes y Longitudes deben de estar en grados decimales. (No en grados minutos o segundos)
- Considerar el radio de la tierra en km, y según tu ubicación:
- Para los polos: 6,356.8
- Para la zona ecuatorial: 6,378.10
- Radio Promedio 6,371.0
- El orden de los datos en la función es la siguiente: (Latitud1, Longitud1, Latitud2, Longitud2, RadioTierra). Donde:
- latitud1 : Latitud de tu punto inicial.
- Longitud1: Longitud de tu punto inicial.
- Latitud2 : Latitud de tu punto final.
- Longitud2: Longitud de tu punto final.
- RadioTierra: Radio de la tierra en Km.
- El resultado obtenido lo tendremos en metros.
¿Cómo usar la función?
1. Haremos el procedimiento con un ejemplo.
2. Primero abrimos el archivo Excel donde veremos los datos de la latitud, longitud de los puntos inicial y final, y del radio de la tierra:
3. Vamos a la pestaña Programador (tienes que tenerla activada), y vamos a Visual Basic:
4. Seleccionamos nuestro archivo dentro de la ventana y luego vamos a Archivo->Importar:
5. Luego buscamos el archivo «FuncionDistanciaGeográfica.bas» que descargamos del repositorio:
6. Si vamos a la carpeta Módulos, podremos ver el archivo cargado:
7. Luego vamos al Excel, y ejecutamos la función DistanciaGeografica. Recuerda el orden que te indico en la sección de **Consideraciones**:
8. Al final, damos Enter y obtendremos el resultado:
Eso es todo. ¡Recuerda compartir si ha sido de gran ayuda!
El archivo se encuentra en mi repositorio de GitHub: Repositorio Distancia Geográfica. O si quieres descargarlo directamente haz click aqui
Gracias por tu aporte
disculpa sabras como calcular la interseccionde un punto georreferencial con un poligono?
Hola, ¿Podrías dar un poco más de detalle? Creo que con la herramienta intersection es suficiente, por lo menos en ArcMap. En el caso de QGIS, una opción sería, dentro de la barra de la sección Vector > Analysis Tools > Points in Poylgon.
Muchas gracias. Ha sido de gran ayuda!
LUIS ROCHA
Muchísimas gracias por el aporte y muchas gracias por ti tiempo en compartirlo.
Gracias
¡Recuerda compartir el conocimiento!
hay algunas inexactitudes: por ejemplo: la varible b: te propongo el siguiente codigo:
Function DistanciaGeografica(LatitudInicio, LongitudInicio, LatitudFin, LongitudFin) As Double
Dim DiferenciaLatitud As Double
Dim DiferenciaLongitud As Double
Dim R As Double
Const vConst = 3.14 / 180
Const RadioTierra4 = 6372.795477598
DiferenciaLatitud = LatitudInicio – LatitudFin
DiferenciaLongitud = LongitudInicio – LongitudFin
R = Sin(DiferenciaLatitud * vConst / 2) ^ 2 + Cos(LatitudInicio * vConst) * Cos(LatitudFin * vConst) * Sin(DiferenciaLongitud * vConst / 2) ^ 2
R = 2 * WorksheetFunction.Asin(Sqr(R))
DistanciaGeografica = R * RadioTierra4 * 1000
End Function
Agradecido por tu aporte, si me funciono.
saludos.
Hola, gracias, hasta el momento me está funcionando bien, sin embargo quiero hacer algo más.
Tengo una latitud y una longitud que quiero comparar con una lista predefinida de coordenadas, lo que quiero es poder comparar las coordenadas iniciales con las de la lista y con eso sabría cual es la ubicación más cercana del listado, hay forma de hacerlo práctico?
Gracias!
Hola Antonio, lo que haría sería calcular la distancia de cada uno, en una nueva columna (Al lado de la lista predefinida por ejemplo) y luego en otra celda, colocar la función MIN (Mínimo) a fin de poder determinar cuál es la distancia menor. Posterior a ello, entiendo que las distancia menor es un indicador de búsqueda, haría un BUSCARX (Si tienes Office 2019 o 365) o BUSCARV, para que me muestre las coordenadas de la lista predefinida.
Ten en cuenta que puede ser que tengas distancias iguales en más de una coordenada predefinida, con lo cual es preciso tener un contador de valores iguales a la mínima distancia, así puedes ver si tienes más de una coordenada de tu lista.
¡Espero haberte ayudado!
Mil gracias, funciona muy bien