def latlondistance(p1, p2): lat1, lon1 = p1 lat2, lon2 = p2 dlat = to_radians(lat2 - lat1) dlon = to_radians(lon2 - lon1) a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2 c = 2 * atan2(sqrt(a), sqrt(1 - a)) return c * 6371000
def latloncourse(p1, p2): lat1, lon1 = to_radians(p1[0]), to_radians(p1[1]) lat2, lon2 = to_radians(p2[0]), to_radians(p2[1]) if cos(lat1) < 1e-10: if lat > 0: return pi else: return -pi tc1 = atan2(sin(lon1 - lon2) * cos(lat2), cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(lon1 - lon2)) return tc1