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
|