天天看点

Android GPS Location Speed Unreliable

I have worked on GPS hardware since more then 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 max error of 5 meters, 95% of the time. Nothing can be said about the remaining 5% readings. 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 caluclation. 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. Anyting less than 3 is not a valid reading. You can be much more confident about the validity of data if number of staellites is high.