Global Positioning System (GPS) is an amazingly complex piece of technology, so I suppose it should not be surprising that it occasionally fails. However, there are a few things that you can do to to increase the accuracy of your GPS readings:
- The software that interprets the GPS and other signals required to determine your location is very complex. The technology involved is constantly being updated. Therefore, if you are experiencing poor performance it is a good idea to update the operating system software and/or buy a new phone.
- The preferences on your phone should include "Use Wireless Networks" and "Use Sensor Aiding" - you should be sure to enable both of these options. On Android devices this will be under the "Settings\Location and Security" menu item, I am not sure where the equivalent setting is on an iPhone, but I assume it is named something similar. If you enable these it means that your phone can use several other clues to help decide where it is located even if there are not enough GPS satellites clearly visible in the sky.
- Don't start running until you have a good GPS signal. It might take a minute or two for your phone to lock onto the GPS satellites properly, if you are moving around while this process is happening you make it more difficult for the phone to guess its position. The RunKeeper app even has a useful feature whereby it will warn you if you try to start tracking a run without having already locked onto the GPS system. If your favourite app doesn't have this feature then it is probably worth installing a specialised application such as GPS status to check.
- Change your privacy settings to allow Google/Apple collect data from your phone. This is a clear case where you need to trade off privacy versus a benefit for yourself. The way that the "Use Wireless Networks" feature works is that hopefully Google or Apple has a record of the locations of the WiFi points that are currently visible to your phone and since the range of a WiFi network is not very large, it can quickly narrow down the possible locations where you might be. However, if nobody has shared this information for the area where you are running, the feature won't work. I personally don't think this information is very private because anyone walking past your front door can collect the same information, but I know many people feel differently. In any case, it is in your own interests to help map the location of WiFi points in your neighbourhood especially if you are going to be regularly exercising in the same place. If you are really worried about privacy, then enable it for a few runs along your normal route before turning it off again.
Incidentally, I previously posted that I was switching back to using MyTracks instead of RunKeeper. However, I sometimes find that it is interesting to have both applications tracking my progress. Both applications have a tendency to occasionally crash for no reason, so having both applications recording your activity means you are fairly certain that you won't loose any data.
At the moment I have RunKeeper configured to announce periodic summary statistics in a female voice while MyTracks uses a male voice. The way I have them configured the two application normally announce at different times and because of the voice difference I know instantly which application I am hearing statistics from. Occasionally the two applications decide to announce statistics at exactly the same time which ends up sounding hilariously like a married couple arguing about whether or not the speed limit is being breached.
In the tips above I forgot to mention the obvious tip - try rebooting your phone. I sometimes find that my phone won't lock onto a GPS signal even if I can see the screen clearly and everything seems to be set up correctly. In these cases, turning the phone off and then back on again will often solve the problem.