I'm using the GeoTracker application to record position and velocity as I exercise along a track. I live on relatively flat ground, only shift up and down no more than5 meters at the very maximum, but while latitude and longitude readings seem quite precise, the program, which uses GPS (and IMHO does not use the pressure sensors / barometer to determine altitude) reports the difference between maximum and minimum altitude along the track to be about 50m. This is quite inaccurate it seems. Why is this?



3 Answers 3


It's likely due to the fact that GPS is simply not very well suited for getting precise altitude measurements, and never has been. Certainly not typical consumer-grade chips. Garmin suggests that variances of up to 400 feet are to be expected in their devices, for example. It's just a geometry problem.

With that in mind, I would doubt that Android has much of a meaningful impact here. Any GPS device will struggle to get a particularly accurate altitude reading. I suppose some apps may appear to be "more precise" than others by taking windowed averages of the altitude data or something (rather than directly surfacing the raw data to the user) but they'll all be getting the same values from the GPS chip.

  • Thank you for your answer. I was wondering, if a device comes with an pressure sensor (as some do), then wouldn't it be much more accurate if this were used to convert pressure readings into altitude readings? Thanks. Dec 9, 2014 at 20:07
  • 2
    Maybe. Pressure sensors have problems too, though, just different kinds. The pressure sensor used in a typical smartphone may not be able to measure altitude much more precisely because it simply may not be sensitive enough. Extremely accurate readings would require components that are too expensive. You'd also have to recalibrate the sensor before every use, at a location of a known altitude, because local pressure will change with the weather. It's not as easy as equating some pressure value of "X" to some altitude of "Y" for every point on Earth. Dec 9, 2014 at 20:20
  • 2
    There are apps that use the pressure sensor for this. From my experience writing such an app (IpBike) the phones pressure sensors are accurate enough to do far better than the gps. You can measure to better than 1m accuracy when doing relative style measurements over say 10 vertical difference. Calibration and weather related drift are of course issues though.
    – Ifor
    Dec 10, 2014 at 14:58
  • 2
    @Ifor: That's good information. Out of curiosity, do you have any kind of numbers related to the kind of variance you might see due to weather patterns? Did you end up using any sort of manual calibration to try to compensate for it? I'm honestly not real familiar with the margin of error for a typical smartphone pressure sensor, and although I knew some of the external factors (like weather) that can impact them, I've not seen much data on the extent to which they're affected. Dec 10, 2014 at 15:05
  • 2
    You can see your start and end altitudes at the same point vary by 20m an hour or more if a big depression is moving through. I don't do anything to compensate for it automatically but there is an option in the app the post process the track one of the options being to do an online lookup for the start and end altitude and alter the track assuming a fixed rate of change. I have manual calibration as well as various automatic calibrations like using the gps or an online lookup.
    – Ifor
    Dec 10, 2014 at 15:16

I had exactly the same problem with the gps data on my android smartphone. I live in the UK and noticed that the altitude displayed was consistantly 40 - 50 metres higher than the mapping showed. I too thought that this was a lack in gps accuracy. In fact the answer was that the gps was showing altitudes related to the wgs84 global spheroid whereas the UK maps all relate elevations to mean sea level, hence the variance.


The problem is called geometric dilution of precision. In a simplistic view, the GPS system computes the distances between the receiver and a set of at least 4 visible satellites. Each of those distances has precision/error associated with it. The precision/error of the final location fix depends not only on the individual distance precision/error values, but also upon the geometric configuration of the satellites in the sky.

When a satellite is low on the horizon, the distance measurement with that satellite will not change much if the altitude of the receiver changes, which gives poor vertical dilution of precision. This combined with the constraint that orbiting satellites do not usually provide optimal geometries results in poor vertical dilution of precision in the final position fix. The vertical result would be better if you always had a satellite overhead, but the orbiting system simply cannot provide this.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .