performance-aware-programming/haversine_01/python/haversine_algorithm.py

15 lines
338 B
Python

from math import radians, sin, cos, sqrt, asin
def haversine_of_degrees(x0, y0, x1, y1, radius):
dy = radians(y1 - y0)
dx = radians(x1 - x0)
y0 = radians(y0)
y1 = radians(y1)
root_term = (sin(dy / 2) ** 2) + cos(y0) * cos(y1) * (sin(dx / 2) ** 2)
result = 2 * radius * asin(sqrt(root_term))
return result