Re: GPS is bad at measuring height
Woah there. Just because GPS returns a number for "height above geoid" doesn't mean you should use it, for two main reasons:
- GPS vertical accuracy is inherently lower, as satellite positioning is optimised for "horizontal" accuracy and the two are exclusive. This is exacerbated on cheap, low-power receivers that only process the minimum of information needed.
- The WGS84/EGM96 geoid is hideously inaccurate by today's standards, the current (2004) iteration of the ellipsoid provides resolution to something on the order of 100km. So the value you're getting is only telling you how high you are above the geoid's height averaged over the surrounding hundred kilometres.
Now, this can be corrected, but you're typically talking an assisted GPS solution based on some known reference altitude, using the GPS signals only to correct for motion relative to that point.
Correcting for position in 3d road systems does not involve altitude values at all. Remember roads are basically graphs. You know which ways you can come in and come out (from the map) and you know which way you did come in (from the "horizontal" data) so you know which layer you ended up on.