私はCoreMotionを使用してccompass見出しを取得していますが、私はコンパス見出しにいくつかの問題があることに気付きました。
最初にCoreMotionを初期化しました。
CMMotionManagerオブジェクト(locationManager)があります。このオブジェクトはCMMotionManagerのインスタンスです。
// initialize CoreMotion
motionManager = [CMMotionManager new];
[motionManager setDeviceMotionUpdateInterval:1.0/30.0];
[motionManager setShowsDeviceMovementDisplay:YES];
[self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical];
位置データは1/30.0秒ごとに更新されます。
デバッグの目的のために私はUILabelを持っています。これは現在のコンパスの見出しを更新間隔ごとに更新してくれます。
アプリケーションが起動している間、私はいつもコンパスを較正するためにマジカル8をしなければなりません。
コンパスを較正した後、北と南の見出しはほぼ2〜5秒間正確です。
数秒後、コンパスは野生になり、角度は飛び跳ねます。
ほとんどの場合、開始位置から両方向に約10〜20度浮いています。 Wierdの結果を得ようとした。
30-60秒後には今もまた南北が交換されたり、東と西に見えたりします。
WWDC 2011では、この問題を解決するために、各センサを別のセンサでどのように計算するかについてセッションが話されています。
CoreMotionの設定で私が見逃したことはありますか?正確な見出し結果のこの大きな問題がありますか?
私は今コンパスを3つのデバイス(2つのiPhone 4とiPhone 4)でビル内外でテストしました。私は野原、小都市、大都市にいました。それはいつも起こります。
Appleのサンプルコンパスアプリは、テストで90%の精度でほぼ正確です。残念ながら、それはAppleによって供給されたオープンではありません。
読んでくれてありがとう。