Un sistema de coordenadas verticales (VCS por sus siglas en inglés) puede asociarse a dos tipos diferentes de superficie: esferoidal (elipsoidal) o gravitacional (geoidal). La mayoría de los sistemas de coordenadas verticales son gravitacionales. Los sistemas de coordenadas verticales gravitacionales pueden mantener una relación puramente tangencial con un sistema de coordenadas geográficas determinado. Cualquier sistema de coordenadas verticales puede utilizarse con diversos sistemas de coordenadas horizontales. Un VCS gravitacional puede definir su punto cero a partir del nivel medio del mar en el área o a partir de un punto geodésico. El nivel medio del mar variará según los lugares debido a la topografía, los efectos atmosféricos, etc.
El VCS gravitacional queda definido en parte por un datum vertical. Más adelante se muestra un ejemplo:
VERTCS["National_Geodetic_Vertical_Datum_1929",VDATUM["NGVD_1929"],PARAMETER["Vertical_Shift",0.0],PARAMETER["Direction",1.0],UNIT["Meter",1.0]]
El VCS esferoidal define alturas que se asocian al esferoide de un sistema de coordenadas geográficas. Los equipos GPS informan nativamente sobre las alturas en relación al elipsoide del World Geodetic System (Sistema Geodésico Mundial) de 1984 (WGS84). Un modelo del geoide incluido en el equipo GPS (ver más adelante) convierte las alturas elipsoidales en elevaciones gravitacionales. La altura esferoidal es un valor geométrico y no tiene sentido físico, ya que el esferoide de un sistema de coordenadas geográficas puede quedar situado por debajo o por encima de la superficie real de la Tierra. Las alturas esferoidales para un área pueden no reflejar el movimiento provocado por la gravedad, es decir, los cursos de agua. Cuando se trabaja con alturas esferoidales, el agua puede fluir hacia arriba.
Un VCS con alturas o profundidades que se refieren al esferoide quedará definido por un datum y no por un datum vertical. Más adelante se muestra un ejemplo:
VERTCS["WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PARAMETER["Vertical_Shift",0.0],PARAMETER["Direction",1.0],UNIT["Meter",1.0]]