私は、iPhone の磁力計と加速度計を一緒に使用するアプリケーションに取り組んでいます。私が指摘した問題は、デバイスを後ろに傾けると、見出しの値が反転する臨界点に達することです (iOS は、デバイスが回転したと考えているようです)。最初は、デバイスの向きがいつ変わったかを確認するのは簡単だと思っていましたが ( [UIDevice currentDevice].orientation
)、*デバイスの向きの変更通知が送信される前 (少なくとも 15 度の傾斜) で、方向の値が大幅に反転します。
この説明がわかりにくい場合は申し訳ありませんが、次の実験で私の問題を簡単に確認できます。
iPhone でコンパス アプリを開き、コンパスを調整します。キャリブレーションが完了したら、ホームの下部が画面の下になるように、縦向きモードで iPhone をまっすぐ上下に持ちます。次に、電話をゆっくりと後方に傾けます (カメラが真上を向くようにします)。コンパスが突然方向を反転する地点に到達します。残念ながら、この時点は、OS がデバイスの向きの変化を認識する時点とは相関していません。
私の問題は、実際にデバイスの向きを変えておらず、明らかにまだ前方(元の方向)を指しているため、元の方向に見出しを登録し続ける必要があることです。この重要なポイントでデバイスの角度をテストし、この方法で修正することに成功しましたが、加速度計からのノイズが原因で、重要な角度の周りで非常に不安定な結果が得られます。また、ロケーション マネージャーのheadingOrientation
プロパティを試してみましたが、成功しませんでした。誰かがこの状況の解決策を見つけた場合、それは大歓迎です!
乾杯。