class Geodesics::CentralAngles::Vincenty

en.wikipedia.org/wiki/Vincenty%27s_formulae

Public Instance Methods

call(point1, point2) click to toggle source
# File lib/geodesics/central_angles/vincenty.rb, line 7
def call(point1, point2)
  delta_longitude = (point1.longitude - point2.longitude).abs
  Math.atan(
    Math.sqrt(
      (Math.cos(point2.latitude) * Math.sin(delta_longitude))**2 +
      (Math.cos(point1.latitude) * Math.sin(point2.latitude) - Math.sin(point1.latitude) * Math.cos(point2.latitude) * Math.cos(delta_longitude))**2
    ) / (
      Math.sin(point1.latitude) * Math.sin(point2.latitude) +  Math.cos(point1.latitude) * Math.cos(point2.latitude) * Math.cos(delta_longitude)
    )
  )
end