Class: Geodesics::CentralAngles::Vincenty

Inherits:
Object
  • Object
show all
Defined in:
lib/geodesics/central_angles/vincenty.rb

Overview

Instance Method Summary collapse

Instance Method Details

#call(point1, point2) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# 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