2

Core Motion を使用して、枢機卿の方向に関して iPhone の向きを取得する方法を考えていました。最善の方法は、磁力計によって与えられる磁場に対するデバイスの姿勢を使用することだと思います。アップルのドキュメントから、態度を次のように説明しています。

CMAttitude オブジェクトは、姿勢の測定値を表します。つまり、特定の参照フレームに対する身体の向きです。

この「与えられた参照枠」を基本的な方向にするにはどうすればよいか考えていました。多分CMCalibratedMagneticFieldを使って?

誰かがこれを行う方法を教えてもらえますか、またはより簡単な代替ルートに行くことができますか.

4

1 に答える 1

2

これがあなたが探しているものかどうかは 100% わかりませんがCMAttitudeReferenceFrameXMagneticNorthZVertical、次の参照フレームを使用して、モーション マネージャーからデバイスの姿勢の値を取得できます。このコードは、デバイスの姿勢をダンプして、1 秒あたり 30 回ログに記録します。ヨー値は東向きで約 0 で、正の値が反時計回り、負の値が時計回りで、両方向に 180 度まで伸びているように思えます。

- (void)startMonitoring
{
    if (!self.motionManager) {
        self.motionManager = [CMMotionManager new];

        [self.motionManager setDeviceMotionUpdateInterval:1.0 / 30.0];
    }

    NSOperationQueue *currentQueue = [NSOperationQueue currentQueue];

    [self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXMagneticNorthZVertical
                                                            toQueue:currentQueue
                                                        withHandler:^(CMDeviceMotion *motion, NSError *error) {
                                                            NSLog(@"%@",motion.attitude);
    }];
}
于 2013-11-13T21:29:52.517 に答える