Improving GPS location accuracy

I am getting poor results using core location to get a specific location point. The accuracy is often over 20 meters (~65 feet off) and never seems to be the same twice.


I'm ignoring cached positions (ignore if NSDate().timeIntervalSinceDate(geoLocation.timestamp) > 5) and taking the best horizontal accuracy of 10 readings.


I've tried both desiredAccuracy = kCLLocationAccuracyBest and kCLLocationAccuracyBestForNavigation. Both seem to give about the same fuzzyness.


I've also tried 100 reads from a stationary point and taken the average. Still bad.


Is this the expected accuracy? If so, how can navigation work? I understand that navigation can "snap" to a road segment, but if the resolution is over 20 meters off it would often pick the wrong road.


Any advice would be *hugely* appreciated.

>Is this the expected accuracy?

5 meters at best is typical. Remember, you're working with consumer grade devices.

What accuracy do you need?

I'd be thrilled with 5 meters.


With a margin of error +/- 20 meters, it means that I am doing something wrong?

Possible - what is your refresh rate and which device are you testing?

I do not have an explicit refresh rate. Is there an option to set that?


I have not set distanceFilter since I understand that the defaut is kCLDistanceFilterNone which reports on any movement.


Could it be that in order to get an accurate location, I have to be moving?

Did you ever get an answer to this? I am trying to use locationManager and, with an unmoving phone the distance varies significantly!


I have tried using "requestLocation" to 1st get the most accurate fix, but subsequent location updates can be as much as 80 meters off.


Any help is greatly appreciated.

Improving GPS location accuracy
 
 
Q