Receiving the signals is only a part of the problem, and even getting a "fix" isn't all that hard. Maintaining an accurate fix, and at the same time refining away previous errors, on a fast moving vehicle, is a dark art.
Software architectures are the limiting factor here.
Every app on your phone cares about "Where am I now", but no app wants to know "Where was I 5 seconds ago, but with more accuracy than you knew when I last asked".
Neither android not iPhone have an API to allow GPS hardware to refine the accuracy of historic position locations.