我试图在 iOS 中获取海拔值和磁场值。我一直在谷歌上搜索这些主题很长时间,但我找不到任何可以正常工作的东西。
a)当我谈论仰角值时,我想在我向上移动我的手机顶部时获得以度为单位的角度。我附上了一张图片,以使其更容易。我一直在尝试这样,但它不起作用:
。H
#import <CoreMotion/CoreMotion.h>
@property (nonatomic, retain) CMMotionManager *motionManager;
.m
self.motionManager = [[CMMotionManager alloc] init];
[self.motionManager startMagnetometerUpdates];
NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];
[self.motionManager startDeviceMotionUpdatesToQueue:myQueue withHandler:^(CMDeviceMotion *motion, NSError *error){
float degrees = (motion.attitude.roll*180) / M_PI;
NSLog(@"Value of elevation is: %f", degrees);
}];
b)关于磁场,我想了解影响我手机精度的设备、磁铁、铁等的影响。* 我得到的所有值都不正确(在一种 NSTimer 中):
NSLog(@"magnetometer data -> x: %f", self.motionManager.magnetometerData.magneticField.x);
NSLog(@"magnetometer data -> y: %f", self.motionManager.magnetometerData.magneticField.y);
NSLog(@"magnetometer data -> z: %f", self.motionManager.magnetometerData.magneticField.z);
float magneticField = sqrtf( powf(self.motionManager.magnetometerData.magneticField.x, 2)
+ powf(self.motionManager.magnetometerData.magneticField.y, 2) +
powf(self.motionManager.magnetometerData.magneticField.z, 2) );
NSLog(@"magneticField value: %@", magneticField.text);
任何想法如何弄清楚....谢谢