The Global Positioning System (GPS) is a navigation system that provides location information anywhere on the Earth where there is an unobstructed line of sight to four or more GPS satellites.
CoPilot works with NMEA compliant GPS receivers that meet two requirements:
- GPS receiver must output the following NMEA messages: GGS, GSA, GSV and RMC. Note: the NMEA standard includes seven output messages. CoPilot only required the four listed above.
- Optimal routing functionality is achieved when these messages are output every second.
The GSA message includes a field indicating whether a device is receiving a "credible" 2D or 3D fix. If CoPilot does not receive this message, it makes the assumption that the GPS fix is from an inadequate number of satellites and is not a good fix. Therefore the coordinates cannot be trusted.
CoPilot must have a 3D fix for location updating and route calculation. We do this due to the inaccuracy of any 2D fix, which could be many meters away and may provide an inaccurate route. This takes a minimum of 4 satellite positions to provide a 3D fix although 6-8 satellites are preferred.
If GPS signal is lost when navigating CoPilot will extrapolate the route until a fix is returned. Instances that this is likely to be witnessed is when passing through tunnels and the view of the satellites are obstructed. For further details on how CoPilot behaves when passing through tunnels please see the Tunnel Mode article.
CoPilot will also use the various operating systems enhanced GPS feed to include the cellular and WiFi location for a faster more accurate fix. These can be obtained through the operating systems location API's.