无法匹配地理编码器中计算的距离

时间:2017-08-03 13:17:12

标签: ruby-on-rails rails-geocoder

根据地理编码官方文档:

艾菲尔铁塔与帝国大厦之间的距离

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

单位配置不变,不确定会出现什么问题!

2 个答案:

答案 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

这是我的样本输出。

IMO:可能是你在每种情况下使用不同的红宝石或宝石版本...... 很高兴知道这两个代码示例在哪些环境中执行。

使用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)

Read me doc距离值:=> 3619.77359999382是outdated