I am currently developing a little application in Android which uses GPS.
When i click a button i start to record a "track". If i walk around i save my position every second into a file. This works perfectly except for one thing:
I do not only save longitude and latitude but also the current altitude. Looking through the data I recognized that the altitude jumps some times.
For example the altitude values look like this:
271.4073616670083; 271.5165709069828; 345.6; 271.58538936056465;
The values around 270 metres are quite good. Jump like these happen irregularily but quite often (every 15 seconds there ist at least 1 jump). And the values always jump up to something around 340 metres.
While recording the track with my application I have also been walking around with an app called NMEA Recorder. This app recorded the altitude values as well but they don't jump like the values I receive.
I know that the altitude values of GPS (calculated by the WGS84-Ellipsoid) aren't very accurate but that still doesn't explain why the values jumpt sometimes.
Would be nice if somebody could tell me why jumps like these happen.
Answer
Imagine several satellites spread out evenly above you. Now pick just one satellite. Visualise a sphere centered around that satellite with a radius of your exact distance from it. Do the same for every satellite in view.
What you're seeing now is a bunch of spheres that intersect exactly where you're standing. That's how a GPS reading works, essentially.
Unfortunately, these spheres intersect at more than one point. As you will see in the following image, it is possible to get a false reading depending on the VDOP. Usually, a satellite configuration that is quite low or high on the horizon will give you this reading.
If you want to make your application more accurate, you will need to look at the quality of the signals and (if available) DOP calculations before 'trusting' the location.
No comments:
Post a Comment