如何计算纬度和经度指定的两点之间的距离?
为了澄清,我想要以公里为单位的距离; 这些要点使用WGS84系统,我想了解可用方法的相对准确性.
我想创建一个函数,使用pythag定理而不是半正弦大圆公式来计算两对纬度/长度之间的距离.由于这将是相对较短的距离(3公里),我认为这个假定平坦地球的版本应该没问题.我怎样才能做到这一点?我问互联网并没有提出任何有用的东西.:)
谢谢.
编辑:
这是我想出来的(似乎工作):
def get_dist(lat0, lng0, lat1, lng1)
begin
d_ew = (lng1.to_f - lng0.to_f) * Math.cos(lat0.to_f)
d_ns = (lat1.to_f - lat0.to_f)
d_lu = Math.sqrt(d_ew.to_f * d_ew.to_f + d_ns.to_f * d_ns.to_f)
d_mi = ((2*Math::PI*3961.3)/360)*d_lu
return d_mi
rescue Exception => ex
logger.debug "[get_dist] An exception occurred: #{ex.message}"
return -1
end
end
Run Code Online (Sandbox Code Playgroud) 如何绘制表示地球平面地图上2点之间最短距离的曲线?
当然,线不是直线,因为地球是弯曲的.(例如,两个机场之间的最短距离是弯曲的.)
编辑:谢谢所有答案的家伙 - 抱歉,我选择解决方案的速度很慢:/