我想知道如何使用 Core Motion 获得相对于基本方向的 iphone 方向。我认为最好的方法是使用设备相对于磁力计给出的磁场的姿态。从苹果文档中,它将态度描述为:
CMAttitude 对象表示对姿态的测量,即身体相对于给定参考系的方向。
我想知道如何使这个“给定的参考框架”成为主要方向。也许通过使用CMCalibratedMagneticField?
谁能告诉我如何做到这一点或走一条更简单的替代路线。
我想知道如何使用 Core Motion 获得相对于基本方向的 iphone 方向。我认为最好的方法是使用设备相对于磁力计给出的磁场的姿态。从苹果文档中,它将态度描述为:
CMAttitude 对象表示对姿态的测量,即身体相对于给定参考系的方向。
我想知道如何使这个“给定的参考框架”成为主要方向。也许通过使用CMCalibratedMagneticField?
谁能告诉我如何做到这一点或走一条更简单的替代路线。
我不能 100% 确定这是否是您要查找的内容,但您可以使用以下CMAttitudeReferenceFrameXMagneticNorthZVertical
参考框架从运动管理器获取设备姿态值。此代码将转储设备的姿态以每秒记录 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);
}];
}