Skip to content

Instantly share code, notes, and snippets.

@DeanThompson
Last active July 29, 2021 14:18
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DeanThompson/d5d745eca4e9023c6501 to your computer and use it in GitHub Desktop.
Save DeanThompson/d5d745eca4e9023c6501 to your computer and use it in GitHub Desktop.
Haversine Formula in Python (Bearing and Distance between two GPS points)
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
r = 6371 # Radius of earth in kilometers. Use 3956 for miles
return c * r
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment