18 lines
456 B
Ruby
18 lines
456 B
Ruby
include Math
|
|
|
|
Radius = 6372.8 # 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)
|