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 

回答

0

在與此相關的是,CLHeadingComponentValue報告的文檔的唯一參考標準化爲-128至+128範圍。但對我來說,似乎應用了其他一些校準。