Компас iPhone показывает неправильный угол наклона курса › около 45°

Это может быть трудно объяснить геометрию, поэтому я буду осторожен в ее разъяснении. Это видно в стандартном приложении компаса и из данных в CLLocationManager.

1) Когда держите телефон в портретной ориентации, считайте, что угол наклона равен 0°.

2) При наведении камеры на небо (например, при съемке облака) угол наклона изменяется от 0° -> 90°, где 90° соответствует вертикальной плоскости.

3) когда телефон наклонен вверх (> 0 градусов и вращается вокруг оси магнитометра «X») и когда телефон находится примерно (но не точно) на 45 градусов, направление компаса поворачивается на 180 градусов. Таким образом, пока камера все еще находится в точке «N», компас будет сообщать «S».

4) для следующих (примерно) 90 градусов курс по компасу поворачивается на 180 градусов.

Этот поворот курса для меня губителен и не совсем совпадает с акселерометрами. Есть ли хороший учебник (я не нашел его сразу) по использованию данных RAW (X, Y, Z) из данных CLHeading для расчета данных курса?

Конечным результатом является то, что я хочу, чтобы направление компаса всегда совпадало с направлением камеры.


person Steven Noyes    schedule 12.10.2011    source источник
comment
Как вы решили это?   -  person W.K.S    schedule 20.09.2016
comment
Мне также интересно, вы решили это?   -  person tagy22    schedule 23.09.2018


Ответы (1)


Нельзя полагаться исключительно на направление компаса. Посмотрите этот ответ, чтобы узнать, что вы ищете, и, в частности, свойство yaw объекта CMAttitude для компенсации угла наклона, о котором вы говорите: Компенсация задержки компаса с помощью гироскопа на iPhone 4

person Duncan Babbage    schedule 04.11.2011
comment
Не совсем. Я уже делал эту компенсацию. Есть дополнительная компенсация, которая мне нужна, когда устройство находится в портретном режиме. Когда UIDeviceOrientation был портретным (нормальным или перевернутым), заголовок подскакивал на 180 градусов, когда шаг превышал 45 градусов. - person Steven Noyes; 11.11.2011