- if (inField == null || inField == Field.ALTITUDE) {
- _altitude = new Altitude(getFieldValue(Field.ALTITUDE), inAltFormat);
+ if (inField == null || inField == Field.ALTITUDE)
+ {
+ Unit altUnit = inOptions.getAltitudeUnits();
+ if (_altitude != null && _altitude.getUnit() != null) {
+ altUnit = _altitude.getUnit();
+ }
+ _altitude = new Altitude(getFieldValue(Field.ALTITUDE), altUnit);
+ }
+ if (inField == null || inField == Field.SPEED)
+ {
+ _hSpeed = new Speed(getFieldValue(Field.SPEED), inOptions.getSpeedUnits());
+ }
+ if (inField == null || inField == Field.VERTICAL_SPEED)
+ {
+ _vSpeed = new Speed(getFieldValue(Field.VERTICAL_SPEED), inOptions.getVerticalSpeedUnits());
+ if (!inOptions.getVerticalSpeedsUpwards()) {
+ _vSpeed.invert();
+ }