I have worked on GPS hardware for more than 7 years now. The accuracy reading is also not 100% accurate.
Manufacturers state accuracy along with the system used for measuring it.
CEP, RMS, 2DRMS, and R95 are some of the systems.
Read this article for more information: http://en.wikipedia.org/wiki/Circular_error_probable
The accuracy figure does not include outliers. For example, if stated accuracy 5 meters then readings taken in good signal conditions will have maximum error of 5 meters, 95% of the time. Nothing can be said about the remaining 5% readings or about readings taken in bad signal contions. Protection against these outliers is the special sauce that makes a good location based app stand out from the rest.
Some things you can do are:
- Filter out insanely high speeds. Make use of altitude as hint for being in a airplane.
- Correlate information from motion sensors and see if they agree with
GPS. Motion sensor signatures will be very different in steady state
and in motion.
- The typical size of a GSM/3G cell is under a kilometer in urban
areas and 5-10 kilometers in sparsely populated areas. If the
vehicle is moving at high speed for some time and the cell tower
information is still the same, you know something is wrong.
- Does the GPS fix read north one moment and south the next that too
at a high speed? If yes, it is most likely a GPS error.
- Check the number of Satellites used in GPS calculation. 12 is outstanding, 9 is healthy, 5 or less is poor, 4 is bare minimum for lat,lon + altitude
calculation, 3 is bare minimum for lat,lon calculation. Anything less than 3 is not a valid reading. You can be much more confident about the validity of data if number of satellites is high.