Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compass True Heading in iPhone/iPad

I having some problem on the iPhone/iPad compass development.

The trueHeading taken from the CLHeading alway give me the '-1' value, I'm stuck here. Here is my code:

self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
self.locationManager.headingFilter = 0.5; //1 degrees
[self.locationManager startUpdatingHeading];

I also found out something, that is when I on the map app or the compass app which has use the location stuff, the trueHeading value suddenly read correct. I wonder what is the cause, any idea? It happen on both iPhone4 and on the iPad.

It also happen whenever I off the Location Services in settings and re-enable it, it will become unable to read the correct trueHeading value, i wonder because the location services cannot be enable by the app I creating?

anyway, thank in advance

---My Solution---

see below.

like image 576
Sola Avatar asked Sep 12 '11 05:09

Sola


1 Answers

to avoid the heading keep returning -1.000000, not JUST run startUpdatingHeading but run startUpdatingLocation together, this helps.

like image 182
kit da studio Avatar answered Oct 02 '22 03:10

kit da studio