나는 CMDeviceMotion, 특히 startDeviceMotionUpdatesUsingReferenceFrame을 실험 해왔다. 자기 필드 값이 나에게 맞지 않는 것 같습니다.CMDeviceMotion의 MagneticField 속성이 잘못 되었습니까?
CMDeviceMotion *manager = [[CMDeviceMotion alloc] init];
manager.deviceMotionUpdateInterval = 0.1;
[manager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXArbitraryCorrectedZVertical toQueue:queue withHandler:^(CMDeviceMotion *motion, NSError *error) {
CMMagneticField fld = motion.magneticField.field;
NSLog(@"%5.1f %5.1f %5.1f", fld.x, fld.y, fld.z);
[self handleDeviceMotion:manager.deviceMotion];
}];
이 약 50의 크기의 자기장 벡터를 나타내지 만, 거의 비중 정렬 : 할 경우, 예를 들어
. 즉, 장치가 테이블에 평평하게 놓여있을 때 x 및 y는 0에 가깝고 z는 장치를 회전하는 방법과 관계없이 -50에 가깝습니다.
지구 자기장의 크기는 50입니다 (Wikipedia은 25에서 65 micro Tesla 사이 여야 함). 그러나 벡터의 방향은 모두 잘못되었습니다.
- 그것은 내 위치 만 (스톡홀름, 스웨덴)에서 독특한 무언가가, 또는
- 자기장 속성은 땅의 필드없이 자기장을 나머지 표시, 또는
- 이 버그 입니다 : 내가 있는지 궁금 해서요
magneticField 속성과 비슷한 경험이 있습니까?
적어도 질문 [docs] (http://developer.apple.com/library/ios/DOCUMENTATION/CoreMotion/Reference/CMDeviceMotion_Class/Reference/Reference.html#//apple_ref/occ/) instp/CMDeviceMotion/magneticField)는 친구입니다. "... 장치 바이어스가없는 주변의 총 자기장을 제공합니다.이 값은 지구의 자기장과 주변 필드에서 장치 바이어스를 뺀 값을 반영합니다." – rickster
사실이긴하지만 실제 동작은 문서에 따른 것 같지 않습니다 ... – fishinear
귀하의 질문은 나 자신이 자력계를 가지고 놀아 왔다고 고무했습니다 ...이 코드를 사용해 보았습니다. 장치 관련 필드 방향에 관심이 있습니다). 그러나 내가 보는 것은 모두 <0,0,0>입니다. 나는 당신의 발췌 부분에없는 것을 놓치고 있습니까? – rickster