Ссылка правильная, а объяснение неправильное - высота в навигаторе должна быть относительно уровня моря (MSL), а не относительно эллипсоида WGS84. Хотя бы потому что стандарт NMEA - морской, и высоту принято измерять относительно MSL.
см. поля 9 и 11:
GGA - Global Positioning System Fix Data
Time, Position and fix related data for a GPS receiver.
1 2 3 4 5 6 7 8 9 10 | 12 13 14 15
| | | | | | | | | | | | | | |
$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh<CR><LF>
Field Number:
1) Universal Time Coordinated (UTC)
2) Latitude
3) N or S (North or South)
4) Longitude
5) E or W (East or West)
6) GPS Quality Indicator,
0 - fix not available,
1 - GPS fix,
2 - Differential GPS fix
(values above 2 are 2.3 features)
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning)
7 = Manual input mode
8 = Simulation mode
7) Number of satellites in view, 00 - 12
8) Horizontal Dilution of precision (meters)
9) Antenna Altitude above/below mean-sea-level (geoid) (in meters)
10) Units of antenna altitude, meters
11) Geoidal separation, the difference between the WGS-84 earth
ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level
below ellipsoid
12) Units of geoidal separation, meters
13) Age of differential GPS data, time in seconds since last SC104
type 1 or 9 update, null field when DGPS is not used
14) Differential reference station ID, 0000-1023
15) Checksum
Процедура следующая. Внутри приемника координаты считаются в картезианских XYZ, затем переводятся в геодезические LLH (Lat-Lon-Height) на эллипсоиде WGS84. Затем по таблице в firmware приемника вычисляется разница между геоидом и эллипсоидом (значение Geodetic Separation) и эллипсоидальная высота корректируется до MSL. Эта высота выдается по протоколу NMEA в поле 9, а корректировочное значение в поле 11.
Если всё-таки нужна оригинальная высота над эллипсоидом WGS84 (чему сложно найти объяснение, разве только для того чтобы посчитать обратно ECEF XYZ), то нужно смотреть Geodetic Separation и делать соответствующую коррекцию.
В древних приемниках (или их старых прошивках) могло не быть встроенной таблицы геоида, в этом случае действительно высота была эллипсоидальная, в нарушение стандарта NMEA. Узнать это легко - нужно посмотреть поле 11 в GGA, если нам нули - значит высота не по стандарту.
Вот кстати онлайн-калькулятор для geodetic separation. Можете сравнить с GGA, поле 11 должно совпадать с точностью до десятых.
Центр Москвы +14.5м: http://geographiclib.sourceforge.net/cgi-bin/GeoidEval?input=55.75N+37.6E&option=Submit
Челябинск, -12.8м: http://geographiclib.sourceforge.net/cgi-bin/GeoidEval?input=55.15N+61.4E&option=Submit
Тюмень -18.4м: http://geographiclib.sourceforge.net/cgi-bin/GeoidEval?input=57.1N+65.55E&option=Submit
dimonster
Подводя итог - высота в навигаторе обычно идет относительно уровня моря даже в древних навигаторах на Атласе-3 (проверено), но можно убедиться просмотром сообщения GGA или замерами около моря.