RosettaCodeData/Task/Haversine-formula/Ruby/haversine-formula-1.rb
2019-09-12 10:33:56 -07:00

18 lines
454 B
Ruby

include Math
Radius = 6371 # rough radius of the Earth, in kilometers
def spherical_distance(start_coords, end_coords)
lat1, long1 = deg2rad *start_coords
lat2, long2 = deg2rad *end_coords
2 * Radius * asin(sqrt(sin((lat2-lat1)/2)**2 + cos(lat1) * cos(lat2) * sin((long2 - long1)/2)**2))
end
def deg2rad(lat, long)
[lat * PI / 180, long * PI / 180]
end
bna = [36.12, -86.67]
lax = [33.94, -118.4]
puts "%.1f" % spherical_distance(bna, lax)