Вам просто нужно реализовать функции менеджера местоположений, чтобы найти точное направление, в котором указывает ваш iPhone.
Таким образом, Вы можете проверить это:
CLLocationManager * locationManager; [locationManager startUpdatingHeading];
И всякий раз, когда вы звоните startUpdatingHeading() он будет вызывать "- (Недействительными) locationManager: (CLHeading *) newHeading: (CLLocationManager *) менеджер didUpdateHeading" метод, который вам нужно переопределить от менеджера Местоположение.
И это все, вы можете найти направление, в котором iPhone 3GS указывает на newHeading.magneticHeading или newHeading.trueHeading.
Вы удивитесь, что сможете получить то же самое направление, что и магнитный компас.
Я уверен, что я только что увидел это на телевизионной рекламе для iPhone ... –
Да, это возможно только при перемещении устройства. Например, сравните модели Garmin 60C и 60Csx. Последний имеет встроенный электронный компас. Однако, у iPhone нет встроенных встроенных датчиков перемещения/поворота? Сочетание входных данных от этого и GPS-сенсора может создать (по крайней мере) приблизительный компас (наверняка все равно потребуется немного переместить устройство как часть инициализации компаса). –
Обратите внимание, что даже электронный компас в Garmin 60Csx ужасно неточен по сравнению с даже приличным компасом магнитной стрелы на 25 долларов. Я еще не знаком с электронным компасом, который подходит для реальной навигации. Лучшее, что я видел, можно только надеяться, чтобы рассказать вам о разнице между NE и N. – user57368