I don't know if this works or not, but I remember reading on another post about having to recalibrate the compass in order for the GPS to read correctly.
This is accomplished by rotating the phone on three different planes several times. So, from what I understand of this procedure. Rotate the phone several times as it would be lying on a table. Next rotate as it would be straight up and down. Finally in a 45 degree to both of the prior.
Again, I cannot validate this is an actual fix, or if someone one just enjoying themselves by making others do stupid human tricks. Still, if you are having issues it may be worth a shot.