У меня есть два способа получить магнитные поля (прочность, x, y и z) с помощью магнитометра устройства iOS.
1) Основное местоположение
Используется метод CLHeading из CLLocationManagerDelegate
locationManager:didUpdateHeading:
. Это похоже на пример приложения Apple Teslameter.
2) Основное движение
Используется CMMagneticField
от CMMotionManager
magnetometerData.magneticField
.
Вопросы:
a) В чем разница между этими двумя? Я получаю разные значения от обоих. Я ожидал, что они вернут те же ценности.
Разница наиболее примечательна, когда я запускаю приложение из положения покоя (лицом вверх в таблице), а затем поднимаю устройство вверх в воздух.
б) Если есть разница, когда следует использовать магнитное поле из заголовка Core Location и когда я должен использовать магнитное поле от Core Motion?
Примечание. Я также не уверен, что "магнитное поле" Core Location и Core Motion относится к различным концепциям магнитного поля.
Примечание: Я вычислял силу как квадратный корень из (x ^ 2 + y ^ 2 + z ^ 2) для обоих подходов.