# GPX (format de fichier)

GPX (GPS eXchange Format) est un format de fichier permettant l'échange de coordonnées géographiques provenant du GPS. Ce format permet de décrire une collection de points utilisables sous forme de points de cheminement (waypoints), traces (tracks) ou itinéraires (routes). Ce format est ouvert. Sa version la plus utilisée est le format GPX v 1.1 mais il existe encore des logiciels comme ITN Converter qui utilisent la version 1.0.

## Le format GPX
### Structure

La racine du fichier (<gpx>) peut contenir :
* Des métadonnées (<metadata>), décrivant le contenu du fichier GPX par :
** un nom (<name>)
** une description (<desc>)
** l'auteur du fichier (<author>) comprenant son nom, une adresse mail et un lien vers son site web.
** un copyright (<copyright>) précisant la licence et l'année
** un ou plusieurs liens (<link>) vers des informations additionnelles (page web, photo, vidéo, etc.)
** la date et l'heure de création du fichier (<time>)
** un ou plusieurs mots-clés
** les frontières couvertes par le fichiers GPX (latitudes et longitudes minimum et maximum)
** Optionnellement, des extensions (<extensions>) permettant d'ajouter librement des éléments XML définis dans un autre espace de noms (namespace) afin d'étendre les capacités du fichier
* Une liste de points de cheminement ou waypoint (<wpt>), chacun étant décrit par :
** sa latitude en degrés (attribut lat)
** sa longitude en degrés (attribut lon)
** son altitude en mètres (<ele>)
** un horodatage (<time>)
** la déclinaison magnétique au point, en degrés (<magvar>)
** la hauteur du géoïde ("niveau de la mer") au-dessus de l'ellipsoïde WGS 84, tel que décrit dans la spécification des messages NMEA GGA (<geoidheight>)
** un nom (<name>)
** un commentaire (<cmt>)
** une description (<desc>)
** le modèle et le fabricant de l'appareil à l'origine de la géolocalisation du point (<src>)
** le type de (fix) GPS ayant permis l’obtention du point ((fix) 2D, 3D, DGPS...)
** le nombre de satellites acquis lors du calcul des coordonnées (<sat>)
** des informations sur les mesures DGPS comme la durée depuis la dernière mise à jour (<ageofdgpsdata>) ou l'identifiant de la station (<dgpsid>)
** mais aussi un lien vers une page web d'informations additionnelles (<link>), le nom exact du symbole illustrant le point sur l'appareil GPS (<sym>), le type de point (<type>) et la précision (<hdop>, <vdop>, <pdop> voir Geometric dilution of precision)
** optionnellement, des extensions d'un autre espace de noms (<extensions>)
* Une liste d' itinéraires (<rte>) chacun décrit par :
** un nom (<name>)
** un commentaire (<cmt>)
** une description (<desc>)
** le modèle de l'appareil (<src>)
** le numéro de l'itinéraire (<number>)
** mais aussi un lien vers une page web d'informations additionnelles (<link>) et le type d'itinéraire(<type>)
** optionnellement, des extensions (<extensions>)
** L'itinéraire est décrit par une liste ordonnée de points (une balise <rtept> par point (au même format que la balise <wpt> décrite précédemment) qui représentent l'emplacement des virages permettant de mener à une destination.
* Une liste de traces ou track (<trk>) chacune décrite par :
** un nom (<name>)
** un commentaire (<cmt>)
** une description (<desc>)
** le modèle de l'appareil (<src>)
** le numéro de la trace (<number>)
** mais aussi un lien vers une page web d'informations additionnelles (<link>), le type d'itinéraire (<type>)
** optionnellement, des extensions (<extensions>)
** La trace est décrite par des segments de trace (<trkseg>), le passage d'un segment à un autre indique une extinction du récepteur GPS ou une perte de réception. Un segment de trace est constitué :
*** d'une liste ordonnée de points de trace (<trkpt>) dont le format est identique à la balise <wpt> décrite précédemment
*** optionnellement d'extensions (<extensions>)

### Exemple
## Les formats concurrents de GPX

À l'exception de GPX et de KML, devenu standard de l'Open Geospatial Consortium, ces formats sont propriétaires et spécifiques à une marque et aux logiciels associés (Navteq, Tele Atlas, ViaMichelin) :
* CSV : Garmin, Navman, Navigon (il n'y a pas de norme geo-csv, le CSV n'est donc pas très structurant et chaque logiciel l'utilise différemment)
* OV2 : TomTom, CoPilot Live
* ASC : ViaMichelin
* KML, KMZ : Google Earth, OziExplorer
* TRK : CompeGPS
* GeoJSON : OpenStreetMap

## Utilisation du format GPX

La plupart des applications ou les appareils GPS utilisent le format GPX comme le ou l'un des formats d'échange avec d'autres applications ou appareils GPS, en import ou en export. Le protocole de communication à l'appareil GPS peut être standard (NMEA), de type RMC, ou propriétaire.
Le format GPX étant un format XML, il est possible de visualiser et de modifier le fichier avec un éditeur de texte. L'utilisation d'un éditeur syntaxique compatible XML (comme Notepad++ avec le plugin XML Tools) permet de s'assurer que le fichier GPX reste valide sur le plan de la syntaxe et réduit le risque de produire un fichier illisible par les applications/appareils.