swiftで方位角を取得しようと考えています。
ネットで調べたところobjectivecで書かれているものはあったのですが、swiftで書かれているものはありませんでした。
自分で解釈しながらswiftに変換したのですが最終的に出てくる値が
1.32327や1.32334などで、何を表しているのかわかりません。
自分の解釈が間違っているのかもしれません。
どうやったら方位角が出るのか教えていただきたいです。
元のコード
objective
1float CalculateAngle(float nLat1, float nLon1, float nLat2, float nLon2) 2{ 3 float longitudinalDifference = nLon2 - nLon1; 4 float latitudinalDifference = nLat2 - nLat1; 5 float azimuth = (M_PI * .5f) - atan(latitudinalDifference / longitudinalDifference); 6 if (longitudinalDifference > 0) return( azimuth ); 7 else if (longitudinalDifference < 0) return( azimuth + M_PI ); 8 else if (latitudinalDifference < 0) return( M_PI ); 9 return( 0.0f ); 10}
自分のコード(変数に代入されるようにしています)
swift
1func getHeading(current: CLLocationCoordinate2D, destination: CLLocationCoordinate2D){ 2 3 let nLon1 = current.longitude 4 let nLat1 = current.latitude 5 let nLon2 = destination.longitude 6 let nLat2 = destination.latitude 7 8 let longitudinalDifference: Float = Float(nLon2 - nLon1) 9 let latitudinalDifference: Float = Float(nLat2 - nLat1) 10 let azimuth = (Float(Double.pi) * 0.5) - atan(latitudinalDifference / longitudinalDifference) 11 12 if longitudinalDifference > 0 { 13 whereIsTheDestination = azimuth 14 }else if longitudinalDifference < 0 { 15 whereIsTheDestination = azimuth + Float(Double.pi) 16 }else if latitudinalDifference < 0 { 17 whereIsTheDestination = Float(Double.pi) 18 } 19 print(whereIsTheDestination) 20 } 21
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/18 06:38