我正在设置一个小程序,从用户获取2个地理坐标,然后计算它们之间的距离(考虑到地球曲率)。所以我查了一下维基百科公式是here。需要帮助计算地理距离
我基本建立我的Python功能基于这一点,这是我想出了:
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
的问题是,出来的结果真的不准确的。我是python的新手,所以一些帮助或建议将不胜感激!
请给一个具体的例子(输入,预期的输出,实际输出)。 – 2012-01-13 23:56:31
我输入了这些坐标(-6.508,55.071)和(-8.886,51.622)。 预计产量为414Km。实际结果是6473公里 – Darkphenom 2012-01-14 00:19:11
我认为这不是不准确,这是错误的。<不准确可能是420公里 – hochl 2012-01-14 01:33:24