<分区>
我想创建一个函数,使用毕达哥定理而不是半正弦大圆公式来计算两对纬度/经度之间的距离。由于这将是相对较短的距离(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