根据地理编码官方文档:
艾菲尔铁塔与帝国大厦之间的距离
Geocoder::Calculations.distance_between([47.858205,2.294359], [40.748433,-73.985655])
=> 3619.77359999382 #配置单位(默认里程)
def geodistance
render json: Geocoder::Calculations.distance_between([47.858205,2.294359], [40.748433,-73.985655])
end
就我而言我的价值是:
=>的 3648.3340765758867
单位配置不变,不确定会出现什么问题!
答案 0 :(得分:1)
irb(main):001:0> require 'geocoder'
true
irb(main):002:0> Geocoder::Calculations.distance_between([47.858205,2.294359], [40.748433,-73.985655])
3648.3340765758867
这是我的样本输出。
使用source,Luke!
可能是这部分代码中的内容:
a = (Math.sin(dlat / 2))**2 + Math.cos(point1[0]) *
(Math.sin(dlon / 2))**2 * Math.cos(point2[0])
c = 2 * Math.atan2( Math.sqrt(a), Math.sqrt(1-a))
c * earth_radius(options[:units])
答案 1 :(得分:1)