¿Encontrar la distancia entre dos coordenadas en elipsoide?

18

Tengo dos conjuntos de latitud y longitud.

¿Cómo puedo encontrar la distancia entre las dos ubicaciones si asumo que la Tierra es un elipsoide perfecto (con una excentricidad de 0.0167)?

    
pregunta Jon Bringhurst 22.07.2010 - 21:09

3 respuestas

16

Recomendaría revisar:
Spherical: enlace
Gran círculo: enlace

    
respondido por el Wallbasher 22.07.2010 - 21:11
7

Así que ya sabes tus dos latitudes y longitudes, digamos

Puedes calcular las coordenadas cartesianas para cada una:

xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));

xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));

Y luego calcula la gran distancia de círculo entre los dos usando:

MeanRadius * Acos(xa * xb + ya * yb + za * zb);

Este enfoque simplificado permite el cálculo previo de los valores x, y, que se pueden almacenar junto con una base de datos para consultas "puntos dentro de x millas" eficientes.

Por supuesto, esto supone una esfera perfecta, y la Tierra ni siquiera es un elipsoide perfecto, por lo que la precisión solo será de unos pocos metros.

    
respondido por el Rowland Shaw 22.07.2010 - 21:17
1

Hay un puñado de herramientas útiles en calculadoras de coordenadas del visualizador GPS & página de herramientas de distancia . Uno de ellos calcula la distancia entre dos puntos. Tiene la opción de dibujar los puntos en el mapa con el Gran Círculo y la opción de dibujar un perfil y exportar los datos.

    
respondido por el Fezter 01.05.2013 - 03:48

Lea otras preguntas en las etiquetas