Это может быть трудно объяснить геометрию, поэтому я буду осторожен в ее объяснении.Это видно в стандартном приложении compas и из данных в CLLocationManager.
1) При удерживании телефона в портретной ориентации угол наклона должен быть равен 0 °
2) При наведениикамеры в небо (например, при съемке облака) угол наклона изменяется от 0 ° до> 90 °, где 90 градусов направлено вверх.
3), когда телефон наклонен вверх (> 0градусов и вращается вокруг оси магнитометра "X"), а когда телефон находится под углом (но не точно) 45 градусов, направление компаса поворачивается на 180 градусов.Таким образом, в то время как камера все еще находится в точке «N», компас сообщит «S».
4) для следующих (примерно) 90 градусов, направление компаса повернуто на 180 градусов.
Это вращение курса разрушительно для меня и не совсем совпадает с акселерометрами.Есть ли хороший учебник (я не нашел ни одного) о том, как использовать данные RAW (X, Y, Z) из данных CLHeading для расчета данных о курсе?
Конечный результат - я хочунаправление по компасу, чтобы оно всегда совпадало с направлением движения камеры.