Skip to content

Instantly share code, notes, and snippets.

@jammin77
Created October 19, 2014 08:51
Show Gist options
  • Save jammin77/37ef29465568dc1c91bf to your computer and use it in GitHub Desktop.
Save jammin77/37ef29465568dc1c91bf to your computer and use it in GitHub Desktop.
def haversine(lat1, long1, lat2, long2)
dtor = Math::PI/180
r = 6378.14*1000
rlat1 = lat1 * dtor
rlong1 = long1 * dtor
rlat2 = lat2 * dtor
rlong2 = long2 * dtor
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
return d
end
@jammin77
Copy link
Author

This will calculate in meters. For miles, change line 3 to "r = 3959".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment