在iOS上获得俯仰,滚动和偏航?
-
26-10-2019 - |
题
我看到我可以检索 cmattitude 从一个设备中,我可以读取所需的3个值(俯仰,滚动和偏航)。据我了解,这种cmattitude对象是由Coremotion管理的,Coremotion是一个传感器融合管理器,用于将Compass,Gyro和加速度计的正确结果一起计算(在Android上,它是Sensormanager类)。
所以我的问题是:
这些值(螺距,滚动和偏航)相对于磁性北部和重力吗?
如果以上是正确的,我该如何修改它以给我相对于地理北部的结果?
如果设备(例如iPhone 3GS)没有陀螺仪,我是否必须告诉管理器,还是可以告诉它,请根据其具有的传感器来给我设备的态度(ACC + Gyro + Compas 或者 ACC + Compas)
解决方案
- 和2:
iOS 5.0简化了此任务。 CMMOTION Manager有新方法:
- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame
作为参考框架,您可以使用此值:
- cmattitudeReferenceFramexmagneticNorthzvertical for Magnether North,
- cmattituderferneframeframextruenorthzvertical for true North。
如果您想使用较旧的iOS进行此操作,恐怕您必须使用当前的用户位置自己对其进行校准。
尝试结帐此资源:
3.如果设备没有陀螺仪,则cmmotionmanger的DeviceMotionabable属性将“否”(等效于Gyroavailable属性),并且您无法使用设备运动获得态度。您唯一可以做的就是直接读取加速度计和磁力计数据。
不隶属于 StackOverflow