RosettaCodeData/Task/Haversine-formula/Ruby/haversine-formula-1.rb

19 lines
454 B
Ruby
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
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)