Как знаю долготу и широту получить. В каком направлении идти по компасу


#1

Как знаю долготу и широту получить. В каком направлении идти по компасу?
Например есть компас


И я знаю долготу и широту какого либо городо.
И нужно из долготы и широты получить градус. И поставить отметку в компасе типа что какой то города в 240 градусе в компасе. Как сделать не понимаю делитесь пожалуйста опытом.


#2

надо еще знать координаты своего местонахождения


#3

Извините да забыл. Я получаю свои координаты.


#4

решил

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))