GPS Altitude Inaccuracy on Android – How to Fix

altitudeelevationgpstracking

I've been recording tracks with GeoTracker on my Android. In places I have points that have altitudes higher than the peaks of a mountain. Like one altitude difference is 46 m.

How is it possible to get that big difference?

Is GPS on my Andorid that bad when it comes to accuracy or is it app itself, and why is this happening?

Edit

My device is:Sony xperia m4 aqua, I had High accuracy mode turn on. Specification for my phone: imei.info/phonedatabase/16958-sony-xperia-m4-aqua-e2303 (GPS: A-GPS/Glonass, GLONASS: No). I am also interested, based on this, how will I be able to figure out what is the accuracy of my measured position and altitude?

Best Answer

There could be a number of problems in play here depending on where you are, what the terrain is like, and what the capabilities of your device are?

  1. If your device uses pressure sensors they may not be physically able to provide accurate altitude readings. Certainly, in a device using typical consumer-grade chips, and sensors, they may not be sensitive enough to read accurately.

    Instruments that are accurate will typically have expensive components and would require calibrating at a known altitude before being used to take into account the local weather and pressure conditions.

  2. If your device is calculating the altitude based upon your location then it could be calculating your altitude above the ellipsoid, which if it using GPS is probably altitude related to the WGS84 global spheroid. This is a mathematical surface that describes the shape of the planet, which is not a sphere, but an ellipsoid.

    If you are in the UK, then as I understand it, the maps show altitudes relative to sea level, so there will be a variance there.

  3. Where the satellites are at the time when the readings are taken will also effect the accuracy of the altitude that the GPS system can calculate. This is due to the errors inherent in the system.

    The GPS device uses the distance to the visible satellites and their geometric positions to fix a location. So, to put it simply in relation to elevation, when satellites are low on the horizon, the change in distance to a satellite will not change much with a change in altitude; so the error is greater. Multiply the errors across all available satellites and this could explain inaccuracies. This is called geometric dilution of precision (GDOP).

In short though it is probably nothing to do with Android.

Related Question