Я использую CoreMotion для получения заголовка ccompass, и я заметил некоторые проблемы с заголовком компаса.Неправильные значения заголовка компаса с CoreMotion
Сначала моя инициализация CoreMotion. У меня есть объект CMMotionManager, locationManager, который является экземпляром CMMotionManager.
// initialize CoreMotion
motionManager = [CMMotionManager new];
[motionManager setDeviceMotionUpdateInterval:1.0/30.0];
[motionManager setShowsDeviceMovementDisplay:YES];
[self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical];
Данные о местоположении обновляются каждые 1/30,0 секунд.
Для целей отладки у меня есть UILabel, который показывает мне текущий заголовок компаса, обновленный в каждый интервал обновления. Пока приложение запускается, мне всегда нужно сделать магическую 8 для калибровки компаса.
После калибровки компаса заголовок для севера и юга правилен почти 2-5 секунд.
Сразу после пары секунд компас разворачивается и углы прыгают. В основном его плавание около 10-20 градусов от исходного положения в обоих направлениях. Признался, чтобы получить более жёсткий результат. Через 30-60 секунд время от времени юг и север меняются местами или показывают на восток и запад.
На WWDC 2011 сессия была рассказана о том, как они вычисляют каждый датчик с другим, чтобы компенсировать эти проблемы. Есть ли что-то, что я пропустил при конфигурации CoreMotion, что у меня есть такие массовые проблемы с точными заголовками?
Я проверил компас теперь с 3 устройствами (2 iPhone 4 и iPhone 4) внутри и снаружи зданий. Я был на полях, в маленьких городах и крупных городах. Так происходит все время. Пример приложения компаса от Apple почти точно с 90% -ной точностью в моих тестах. К сожалению, его не открывают Apple.
Благодарим вас за чтение.
Благодарим вас за ответ. У меня есть крайний срок в понедельник для другого проекта, и я не могу проверить его прямо сейчас. Я проверю ваше предложение. Звучит неплохо. Я сообщу вам через несколько дней. Спасибо! – DasFuxx
извините за задержку. iam тестирует его прямо сейчас =) – DasFuxx
Что вы подразумеваете под «Использование CoreMotion через CoreLocation»?У меня есть аналогичная проблема, и это швы, идущие из CoreLocation, в основном правильны, но в CoreMotion, если мы устанавливаем опорный кадр на настоящий север, тогда данные движения устройства, кажется, прыгают и/или дрейфуют. – pzo