Я предполагаю, что код, который вы разместили, вычисляет угол между географическим севером и направлением в сторону Мекки для текущего местоположения.Все, что вам нужно сделать сейчас, это принять во внимание заголовок пользователя.
Например, предположим, что пользователь расположен так, что Мекка находится прямо на западе, а пользователь смотрит прямо на восток.Поскольку tan
возвращает +/- 90 градусов, угол киблы должен быть -90 градусов.Теперь настройка должна быть очевидной: вам нужно вычесть 90 градусов из угла киблы, соответствующего географическому северу (-90), чтобы получить (-180) градусов, то есть на сколько нужно повернуть пользователю, чтобы повернуться лицом к Мекке.
Проще говоря, вам нужно «отменить» отклонение пользователя, и вы делаете это, вычитая из угла киблы курс пользователя, который относительно географического севера.
С учетом математики изКстати, теперь вам нужно наблюдать за изменениями курса и пересчитывать угол киблы при изменении курса.Наконец, обязательно используйте свойство trueHeading
.