We support the <altitudeMode> tag currently, but not <gx:altitudeMode> which extends <altitudeMode> by two more values. https://developers.google.com/kml/documentation/kmlreference#gxaltitudemode - Extend the AltitudeMode enum in src/lib/MarbleGlobal.h by the two additional values - Add a KmlGxAltitudeModeTagHandler that behaves like the existing KmlAltitudeModeTagHandler, but listens to the gx: namespace and parses the two additional values also - Add a KmlAltitudeModelTagWriter which can both write <altitudeMode> and <gx:altitudeMode>. Have it switch between both based on the enum value to write - Change KmlCameraTagWriter.cpp, KmlGroundOverlayWriter.cpp, KmlLatLonAltBoxWriter.cpp and KmlModelTagWriter.cpp to use the new KmlAltitudeModelTagWriter instead of writing altitudeMode manually - Add a test .kml file to tests/data/ which has various combinations of altitudeMode inside and outside the gx namespace with various values. Add the .kml file to tests/TestGeoDataWriter.cpp and verify it works as extended