これは幾何学を説明するのが難しいかもしれないので、私はそれを綴る際に注意します. これは、標準のコンパス アプリと CLLocationManager のデータから確認できます。
1) 携帯電話を縦向きに持つときは、ピッチ角を 0° と見なします。
2) カメラを空に向ける場合 (雲の写真を撮る場合など)、ピッチ角は 0° -> 90° で、90° は真上です。
3) 電話が上向きに傾いている場合 (> 0 度で磁力計の「X」軸を中心に回転)、電話が約 (ただし正確ではない) 45 度の場合、コンパスの方位は 180 度回転します。そのため、カメラがまだポイント "N" にある間、コンパスは "S" を報告します。
4) 次の (おおよその) 90 度では、コンパスの向きが 180 度回転します。
この見出しの回転は私にとって破壊的であり、加速度計と完全に一致しません. CLHeading データの RAW データ (X、Y、Z) を使用して見出しデータを計算するための優れたチュートリアル (すぐに見つけられなかった) はありますか?
最終的な結果は、コンパスの方向が常にカメラの方向と一致するようにすることです。