решил
func degreesToRadians(degrees: Float) -> Float { return degrees * .pi / 180.0 }
func radiansToDegrees(radians: Float) -> Float { return radians * 180.0 / .pi }
func getBearingBetweenTwoPoints1(point1 : CLLocationCoordinate2D, point2 : CLLocationCoordinate2D) -> Float {
let lat1 = degreesToRadians(degrees: Float(point1.latitude))
let lon1 = degreesToRadians(degrees: Float(point1.longitude))
let lat2 = degreesToRadians(degrees: Float(point2.latitude))
let lon2 = degreesToRadians(degrees: Float(point2.longitude))
let dLon = lon2 - lon1
let y = sin(dLon) * cos(lat2)
let x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon)
let radiansBearing = atan2(y, x)
return radiansToDegrees(radians: Float(radiansBearing))
}
пример вызова
getBearingBetweenTwoPoints1(point1: currentLocation, point2: CLLocationCoordinate2D(latitude: 21.422583, longitude: 65.1213292))