0

我从我的 CMMotionManager 收到 RotationMatrix 并想从中计算我手机的航向,例如北纬 38 度(并避免 CLLocationManager),以便制作更准确的指南针:

 [motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical toQueue:[NSOperationQueue mainQueue]  withHandler:^(CMDeviceMotion *deviceMotion, NSError *error) {

 CMRotationMatrix rm = deviceMotion.attitude.rotationMatrix;

 // Get the heading.
 motionHeading = M_PI + atan2(rm.m22, rm.m12);
 motionHeading = motionHeading*180/M_PI;

但是,这仅在手机平放在桌子上时才有效。我应该使用什么公式来允许我手中所有手机的位置,处于横向模式,以及设备在地平线上方或下方?

谢谢。

4

1 回答 1

0

我终于使用了这个在运动稳定性方面效果很好的答案。

于 2015-01-13T07:48:26.203 回答