Stuff that interests me.

# Posts tagged Haversine

## Calculating Distance

Mar 20th

The solution for calculating the distance between any two points on a sphere is an equation called the Haversine Formula. It can be used to estimate the distance between any two points on Earth using their latitude and longitude by making the assumption that the Earth is a perfect sphere. It isn’t, but for some applications the approximation is good enough.

Here’s an example calculating the distance of two points using Python:

def min( val1, val2 ): if val1 > val2: return val2 else: return val1 def haversine( lat1, lon1, lat2, lon2 ): dlat = math.radians( lat2 - lat1 ) dlon = math.radians( lon2 - lon1 ) a = math.sin(dlat/2)**2 + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2)**2 return 2*math.asin(min(1,math.sqrt(a)))

Calculating the distance between Los Angeles and New York City in kilometers:

>>> haversine( 34.05, -118.24, 40.71, -74.00 ) * 6367 3933.5883159892405

Same example, miles this time:

>>> haversine( 34.05, -118.24, 40.71, -74.00 ) * 3956 2444.0514179446263