Skip to content

Commit

Permalink
making formula easier to read
Browse files Browse the repository at this point in the history
  • Loading branch information
mneedham committed Jul 6, 2013
1 parent b58230b commit e131a56
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions haversine.rb
@@ -1,20 +1,17 @@
def haversine(lat1, long1, lat2, long2)
dtor = Math::PI/180
r = 6378.14

rlat1 = lat1 * dtor
rlong1 = long1 * dtor
rlat2 = lat2 * dtor
rlong2 = long2 * dtor
def haversine(lat1, long1, lat2, long2)
radius_of_earth = 6378.14
rlat1, rlong1, rlat2, rlong2 = [lat1, long1, lat2, long2].map { |d| as_radians(d)}

dlon = rlong1 - rlong2
dlat = rlat1 - rlat2

a = power(Math::sin(dlat/2), 2) + Math::cos(rlat1) * Math::cos(rlat2) * power(Math::sin(dlon/2), 2)
c = 2 * Math::atan2(Math::sqrt(a), Math::sqrt(1-a))
d = r * c

d
great_circle_distance = 2 * Math::atan2(Math::sqrt(a), Math::sqrt(1-a))
radius_of_earth * great_circle_distance
end

def as_radians(degrees)
degrees * Math::PI/180
end

def power(num, pow)
Expand Down

0 comments on commit e131a56

Please sign in to comment.