Với iOS5, tần suất cập nhật của đọc dữ liệu thô của Compass, CLHeading
, giảm đáng kể. Điều này khiến ứng dụng thực tế tăng cường của tôi không sử dụng được, bởi vì nó phụ thuộc vào việc đọc gần đúng thời gian thực của dữ liệu la bàn thô.iOS5: tỷ lệ cập nhật thấp của các bài đọc CLHeading -> chuyển sang CoreMotion là vấn đề
Vì vậy, tôi hiện đang cố gắng chuyển sang CoreMotion. Điều này cung cấp dữ liệu từ kế thường xuyên hơn Cập nhật:
cmManager = [[CMMotionManager alloc] init];
[cmManager startMagnetometerUpdates];
sau đó tôi có thể truy cập vào magneticField
dữ liệu bất cứ lúc nào tôi muốn trong khi chơi game:
CMMagneticField magneticField = cmManager.magnetometerData.magneticField;
Tôi có vấn đề như sau: Dữ liệu trong CMMagneticField
được trong một đơn vị khác, sau đó CLHeading
dữ liệu x/y/z.
Tôi muốn chuyển đổi dữ liệu CMMagneticField
x/y/z sang các đơn vị giống như CLHeading/CLHeadingComponentValue - để có thể sử dụng mã AR hiện tại của tôi.
Dưới đây là một vài bài đọc:
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