Chaque constellation (GPS, Glonass, Beidou…) utilise en effet une référence différente ; dans la pratique c’est toujours converti par le récepteur comme si tout faisait référence au « bon vieux » WGS84.
D’autre part il existe plusieurs modèles de conversion ellipsoïde>géoïde, plus ou moins précis ; pour des raisons pratiques, les puces qui le peuvent intègrent une table de conversion très simple et légère (généralement EGM84) donnant un résultat « suffisamment bon ». Si la puce ne sait pas réaliser la conversion, les apps proposent généralement une table un chouïa plus récente et précise (et lourde) EGM96.
En fin de compte, une fois qu’on est sûr que son couple Puce+App fournit bien une altitude (et non une hauteur ayant ~50m de trop), le reste c’est du pinaillage. Les imprécisions liées aux conversions z->alt restent négligeables (ça se compte en cm) face à tous les problèmes de triangulation, réception du signal, arrondis etc.