5
使用iOS5時,Compass原始數據讀取的更新頻率CLHeading
大幅下降。這使我的增強現實應用程序無法使用,因爲它取決於對原始羅盤數據的接近實時讀取。iOS5:CLHeading讀數的更新率低 - >切換到CoreMotion有問題
因此,我現在試圖切換到CoreMotion。這提供了更頻繁地更新磁強計數據:
cmManager = [[CMMotionManager alloc] init];
[cmManager startMagnetometerUpdates];
然後我可以訪問magneticField
數據隨時在遊戲過程中我想:
CMMagneticField magneticField = cmManager.magnetometerData.magneticField;
我的問題是: 在CMMagneticField
的數據在不同的單位然後CLHeading
x/y/z數據。
我想將CMMagneticField
x/y/z數據轉換爲與CLHeading/CLHeadingComponentValue相同的單位 - 以便能夠使用我現有的AR代碼。
以下幾個讀數:
7.3 /17.64/-39.58 CLHeadingComponentValue X/Y/Z
-103.12/88.51/-20.05 CMMagneticField
-10.81/-34.9/-18.6 CLHeadingComponentValue X/Y/Z
-121.00/ 33.29/3.1 CMMagneticField
-20.8/-38.0/ -4.0 CLHeadingComponentValue X/Y/Z
-132.9/ 32.2/14.4 CMMagneticField