If a GPS has a good set of sats, it generates a 4D solution to its position. The terms of this are X, Y, Z, deltaX, deltaY, deltaZ and t. The 3 deltas
can be easily used to compute a speed or velocity. Note you also get an
acurate time.
On height, because someone left a sodding great lump of rock littering up
the signal path of all the sats `down there', you can only get signals from sats that are above you, as opposed to being able to see sats anywhere around the horizontal. This is why height is harder to get good accuracy for.