fuk*_*kus 5 objective-c magnetometer core-motion ios5 compass-geolocation
使用iOS5,Compass原始数据读取的更新频率CLHeading显着下降.这使得我的增强现实应用程序无法使用,因为它依赖于原始指南针数据的近实时读取.
因此我现在正试图切换到CoreMotion.这提供了更频繁更新的磁力计数据:
cmManager = [[CMMotionManager alloc] init];
[cmManager startMagnetometerUpdates];
Run Code Online (Sandbox Code Playgroud)
然后我可以magneticField在游戏中随时访问数据:
CMMagneticField magneticField = cmManager.magnetometerData.magneticField;
Run Code Online (Sandbox Code Playgroud)
我CMMagneticField遇到的问题如下:数据位于CLHeadingx/y/z数据的不同单位.
我想将CMMagneticFieldx/y/z数据转换为与CLHeading/CLHeadingComponentValue相同的单位 - 以便能够使用我现有的AR代码.
这里有几点读物:
7.3 / 17.64 / -39.58 CLHeadingComponentValue X/Y/Z
-103.12 / 88.51 / -20.05 CMMagneticField
Run Code Online (Sandbox Code Playgroud)
-10.81 / -34.9 / -18.6 CLHeadingComponentValue X/Y/Z
-121.00 / 33.29 / 3.1 CMMagneticField
Run Code Online (Sandbox Code Playgroud)
-20.8 / -38.0 / -4.0 CLHeadingComponentValue X/Y/Z
-132.9 / 32.2 / 14.4 CMMagneticField
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |