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

Unable to match distance computed in 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

单位配置没变,不知道会出什么问题!

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:可能是您在每种情况下使用了不同的 ruby 或 gem 版本或其他... 很高兴知道这两个代码示例在哪些环境中执行。

使用source,卢克!

编辑:

可能是这部分代码中的内容:

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])

Read me doc distance value :=> 3619.77359999382 is outdated.