如何利用磁力计改变航向角

时间:2014-04-30 05:31:54

标签: ios7 core-motion magnetometer

我现在已经有几次了CoreMotion Framework。我希望得到与Magnetic North相对应的角度,当用户使用iOS设备时,向其他方向移动,例如我有iOS设备,而我目前面向北方(例如,位置A )而且我转向并开始面向东方(位置B )。现在我希望在面向位置B 时创建的角度对应于设备的磁北。

这就是我现在正在尝试的方式(在谷歌搜索时找到的地方)

[_motionManager startMagnetometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMMagnetometerData *magnetometerData, NSError *error)
         {
             double heading = 0.0;
             double x = magnetometerData.magneticField.x;
             double y = magnetometerData.magneticField.y;
             //double z = motion.magneticField.field.z;

             if (y > 0) heading = 90.0 - atan(x/y)*180.0/M_PI;
             if (y < 0) heading = 270.0 - atan(x/y)*180.0/M_PI;
             if (y == 0 && x < 0) heading = 180.0;
             if (y == 0 && x > 0) heading = 0.0;

             NSLog(@"Heading Angle = %f",heading);

         }];

提前感谢。

0 个答案:

没有答案