À l'origine, le GPS était un projet de recherche de l'armée américaine. Il a été lancé dans les années 1960 et c'est à partir de 1978 que les premiers satellites GPS sont envoyés dans l'espace. En 1983, le président Ronald Reagan, à la suite de la mort des 269 passagers du Vol 007 Korean Airlines a promis que la technologie GPS serait disponible gratuitement aux civils, une fois opérationnelle. Une seconde série de satellites est lancée à partir de 1989 en vue de constituer une flotte suffisante. En 1995, le nombre de satellites disponibles permet de rendre le GPS opérationnel en permanence sur l'ensemble de la planète, avec une précision limitée à une centaine de mètres pour un usage civil. En 2000, le président Bill Clinton confirme l'intérêt de la technologie à des fins civiles et autorise une diffusion non restreinte des signaux GPS, permettant une précision d'une dizaine de mètres et une démocratisation de la technologie au grand public à partir du milieu des années 2000.
Les États-Unis continuent de développer leur système par le remplacement et l'ajout de satellites ainsi que par la mise à disposition de signaux GPS complémentaires, plus précis et demandant moins de puissance aux appareils de réception. Un accord d'interopérabilité a également été confirmé entre les systèmes GPS et Galileo afin que les deux systèmes puissent utiliser les mêmes fréquences et assurer une compatibilité entre eux.
Le GPS différentiel (Differential global positioning system : DGPS) permet d'améliorer la précision du GPS en réduisant la marge d'erreur du système.
Des systèmes complémentaires d'amélioration de la précision ont été développés (SBAS, Satellite based augmentation system) comme WAAS en Amérique du Nord, MSAS au Japon ou EGNOS en Europe. Celui-ci, développé par l'Union européenne, est un réseau de quarante stations au sol dans toute l’Europe, couplé à des satellites géostationnaires, qui améliore la fiabilité et la précision des données du GPS, et corrige certaines erreurs. Certains de ces systèmes sont privés, et nécessitent un abonnement auprès d'un opérateur qui les diffuse (généralement par satellite). D'autres sont publics. De tels systèmes peuvent avoir une couverture limitée (région, pays), et leur précision est variable.
Un procédé a été mis au point et breveté par deux chercheurs du CNES, Denis Laurichesse et Flavien Mercier : la méthode des ambiguïtés entières non différenciées. Elle consiste à découper les chemins et à en extraire des « morceaux », dont la valeur utilisée comme base permet de déduire le positionnement précis. Elle assure une exactitude avérée au centimètre près en positionnement temps réel et une possibilité d'application à la géodésie.
Le GPS fonctionne grâce au calcul de la distance qui sépare un récepteur GPS et plusieurs satellites. Les informations nécessaires au calcul de la position des 31 satellites étant transmise régulièrement au récepteur, celui-ci peut, grâce à la connaissance de la distance qui le sépare des satellites, connaître ses coordonnées.
La technologie informatique a pu améliorer le fonctionnement technique des GPS à partir de l'utilisation de plusieurs concepts mathématiques tel que les graphes qui sont principalement utilisés dans l'implémentation de bases de données et de systèmes de fichiers. En effet, plusieurs algorithmes comme celui du Gps-less location, l'algorithme de Floyd-Warshall, l'algorithme de Dijkstra, ou bien l'algorithme de parcours en largeur sont utilisés pour veiller au bon fonctionnement du système. Par contre, en ce qui concerne l'identification du plus court chemin, l'algorithme le plus utilisé pour les GPS est celui de Dijkstra qui, généralement, sert à résoudre ce problème dans plusieurs domaines.
Les satellites GPS émettent plusieurs signaux codés, à destination civile ou militaire. Le signal civil d'utilisation libre correspond au code C/A, émis sur la porteuse de 1 575 MHz.
Sur cette porteuse, le signal de modulation est une séquence résultant de l'addition modulo 2 du code pseudo-aléatoire C/A à 1 Mbps et des données à 50 bps contenant les éphémérides des satellites et d'autres informations de navigation. C'est le code C/A qui sert dans les récepteurs par corrélation avec le signal reçu à déterminer l'instant exact d'émission de celui-ci.
Cet instant d'émission de référence du code C/A peut être modulé, à nouveau par un code pseudo-aléatoire, pour dégrader la détermination de position au sol. Ce chiffrement est appelé selective availability (SA), faisant passer la précision du système de 10 m environ à 100 m. Il a été abandonné en 2000 sous la pression des utilisateurs civils, et en raison du développement du DGPS qui le compensait en grande partie. Cette possibilité est cependant toujours présente à bord des satellites. La SA comporte aussi la possibilité de dégrader les informations permettant de calculer la position des satellites sur leur orbite ; elle n'a jamais été utilisée.
Les satellites envoient des ondes électromagnétiques (micro-ondes) qui se propagent à la vitesse de la lumière. Connaissant celle-ci, on peut alors calculer la distance qui sépare le satellite du récepteur en connaissant le temps que l'onde a mis pour parcourir ce trajet.
Pour mesurer le temps mis par l'onde pour lui parvenir, le récepteur GPS compare l'heure d'émission incluse dans le signal et celle de réception de l'onde émise par le satellite. Cette mesure, après multiplication par la vitesse du signal, fournit une pseudo-distance, assimilable à une distance, mais entachée d'une erreur de synchronisation des horloges du satellite et du récepteur, et de dégradations comme celles dues à la traversée de l'atmosphère. L'erreur d'horloge peut être modélisée sur une période assez courte à partir des mesures sur plusieurs satellites.
Connaissant les positions des satellites à l'heure d'émission des signaux, et les pseudo-distances mesurées (éventuellement corrigées de divers facteurs liés notamment à la propagation des ondes), le calculateur du récepteur est en mesure de résoudre un système d'équations dont les quatre inconnues sont la position du récepteur (trois inconnues) et le décalage de son horloge par rapport au temps GPS. Ce calcul est possible dès que l'on dispose des mesures relatives à quatre satellites ; un calcul en mode dégradé est possible avec trois satellites seulement si l'on connaît l'altitude ; lorsque plus de quatre satellites sont visibles (ce qui est très souvent le cas), le système d'équations à résoudre est surabondant : la précision du calcul est améliorée, et on peut estimer les erreurs sur la position et le temps.
La précision de la position obtenue dépend, toutes choses égales par ailleurs, de la géométrie du système : si les satellites visibles se trouvent tous dans un cône d'observation de faible ouverture angulaire, la précision sera évidemment moins bonne que s'ils sont répartis régulièrement dans un large cône. Les effets de la géométrie du système de mesure sur la précision sont décrits par un paramètre : le DOP (pour Dilution Of Precision : atténuation ou diminution de la précision) : le HDOP se réfère à la précision horizontale, le TDOP à la précision sur le temps, le VDOP à la précision sur l'altitude. La précision espérée est d'autant meilleure que le DOP est petit.
La difficulté est de synchroniser les horloges des satellites et celle du récepteur. Une erreur d'un millionième de seconde provoque une erreur de 300 mètres sur la position. Le récepteur ne peut bien entendu pas bénéficier d'une horloge atomique comme les satellites ; il doit néanmoins disposer d'une horloge assez stable, mais dont l'heure n'est a priori pas synchronisée avec celle des satellites. Les signaux de quatre satellites au moins sont nécessaires pour déterminer ce décalage, puisqu'il faut résoudre un système d'au moins quatre équations mathématiques à quatre inconnues qui sont la position dans les trois dimensions plus le décalage de l'horloge du récepteur avec l'heure GPS (voir plus loin).
Outre l'incertitude associée à l'horloge du récepteur, la relativité restreinte et la relativité générale interviennent de façon fondamentale. La première implique que le temps ne s'écoule pas de la même façon dans le référentiel du satellite, parce que celui-ci possède une grande vitesse par rapport au référentiel du récepteur. La seconde explique que la plus faible gravité au niveau des satellites engendre un écoulement du temps plus rapide que celui du récepteur. Le système tient compte de ces deux effets relativistes dans la synchronisation des horloges. Par exemple les fréquences émises sont légèrement décalées (4,5 ppm) pour être reçues au sol avec leur valeur réelle.
La plupart des récepteurs sont capables d'affiner leurs calculs en utilisant plus de 4 satellites (ce qui rend les résultats des calculs plus précis) tout en ôtant les sources qui semblent peu fiables, ou trop proches l'une de l'autre pour fournir une mesure correcte, comme on le précise ci-dessus.
Le GPS n'est pas utilisable dans toutes les situations : le signal émis par les satellites NAVSTAR étant assez faible, la traversée des couches de l'atmosphère est un facteur qui perturbe la précision de la localisation ; de même, les simples feuilles des arbres peuvent absorber le signal et rendre la localisation hasardeuse. De la même façon, l'effet canyon, particulièrement sensible en milieu urbain, consiste en l'occultation d'un satellite par le relief (un bâtiment par exemple) ; ou pire encore, en un écho du signal contre une surface qui n'empêchera pas la localisation mais fournira une localisation fausse : c'est le problème des multi-trajets des signaux GPS.
D'autres erreurs, n'ayant pas de corrélation avec le milieu de prise de mesure ni la nature atmosphérique, peuvent être présentes. Ce sont des erreurs systématiques, telles les décalages orbitaux ou encore un retard dans l'horloge atomique qui calcule le temps auquel la mesure est prise. Un mauvais étalonnage du récepteur (ou autres appareils électroniques du système) peut aussi produire une erreur de mesure.
En l'absence d'obstacles, il reste cependant des facteurs de perturbation importants nécessitant une correction des résultats de calcul. Le premier est la traversée des couches basses de l'atmosphère, la troposphère. La présence d'humidité et les modifications de pression de la troposphère modifient l'indice de réfraction n et donc la vitesse et la direction de propagation du signal radio. Si le terme hydrostatique est actuellement bien connu, les perturbations dues à l'humidité nécessitent, pour être corrigées, la mesure du profil exact de vapeur d'eau en fonction de l'altitude, une information difficilement collectable, sauf par des moyens extrêmement onéreux comme les lidars, qui ne donnent que des résultats parcellaires. Les récepteurs courants intègrent un modèle de correction.
Le deuxième facteur de perturbation est l'ionosphère. Cette couche ionisée par le rayonnement solaire modifie la vitesse de propagation du signal. La plupart des récepteurs intègrent un algorithme de correction, mais en période de forte activité solaire, cette correction n'est plus assez précise. Pour corriger plus finement cet effet, certains récepteurs bi-fréquences utilisent le fait que les deux fréquences L1 et L2 du signal GPS ne sont pas affectées de la même façon et recalculent ainsi la perturbation réelle.