Cálculo de la distancia entre dos puntos utilizando latitud, longitud y altitud (elevación)

Estoy tratando de calcular la distancia entre dos puntos, usando latitud, longitud y altitud (elevación).

Estaba usando la fórmula euklides para obtener mi distancia:

D=√((Long1-Long2)²+(Lat1-Lat2)²+(Alt1-Alt2)²)

Mis puntos son coordenadas geográficas y, por supuesto, la altitud es mi altura sobre el mar. Solo tengo lat y lng, estoy usando GOOGLE API Elevation para obtener mi altitud.

Estoy desarrollando una aplicación que calcula la distancia recorrida (en mis esquís). Cada aplicación que he usado obtiene la distancia recorrida con la altitud incluida. Como #Endomondo o #Garmin, no puedo obtener mi distancia en el espacio 2D porque las distancias reales variarán de las que he devuelto.

¿Qué fórmula sería la mejor para calcular mi distancia? Por supuesto con altitud incluida.

Estoy escribiendo mi aplicación en Python, con PostGis.

Respuestas a la pregunta(3)

Su respuesta a la pregunta