Estoy configurando un pequeño programa para tomar 2 coordenadas geográficas de un usuario y luego calcular la distancia entre ellas (teniendo en cuenta la curvatura de la tierra). Así que busqué en wikipedia cuál es la fórmula here.Necesita ayuda para calcular la distancia geográfica
básicamente creé mi función de Python basado en eso y esto es lo que ocurrió:
def geocalc(start_lat, start_long, end_lat, end_long):
start_lat = math.radians(start_lat)
start_long = math.radians(start_long)
end_lat = math.radians(end_long)
end_long = math.radians(end_long)
d_lat = start_lat - end_lat
d_long = start_long - end_long
EARTH_R = 6372.8
c = math.atan((math.sqrt((math.cos(end_lat)*d_long)**2 +((math.cos(start_lat)*math.sin(end_lat)) - (math.sin(start_lat)*math.cos(end_lat)*math.cos(d_long)))**2))/((math.sin(start_lat)*math.sin(end_lat)) + (math.cos(start_lat)*math.cos(end_lat)*math.cos(d_long))))
return EARTH_R*c
El problema es que los resultados salen muy inexacta. ¡Soy nuevo en Python, así que un poco de ayuda o consejo sería muy apreciado!
favor dar un ejemplo concreto (entrada, salida era de esperar, la salida real). –
Ingresé estas coordenadas (-6.508, 55.071) y (-8.886, 51.622). La salida esperada era 414Km. El resultado real fue 6473Km – Darkphenom
Diría que esto es más que inexacto, esto está mal>.
hochl