纬度/经度计算的总和指定地图距离吗?

is the total of a lat / long calculation specify the map distance?

我们在工作中使用 rails 地理编码器 gem,但想要开始获取存储在 memcached 中的一组位置中最近的位置(即不使用 ActiveRecord 接口)。会不会像计算起点和不同地方点之间的数值差一样简单?或者还有其他我应该注意的计算吗?

这仅适用于地图距离,不适用于街道距离或交通距离。地理编码器是否支持此计算?

Geocoder::Calculations.distance_to可以用haversine公式得到两点之间的距离:

coordinates = [[1, 1], [-2, 1], [3,2]]
hash = coordinates.each_with_object({}) do |latlng, memo|
  memo[latlng] = Geocoder::Calculations.distance_between(latlng, location)
end

hash.min # [[-2, 1], 154.49109373250715]
hash.max # [[3, 2], 249.0844867974628]

haversine 公式通常对大多数用途来说已经足够好了,但没有考虑到地球是一个不那么完美的球体这一事实,并且不能保证它的正确性优于 0.5%。