diff options
| author | Keith Packard <keithp@keithp.com> | 2017-11-11 20:44:27 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-11-11 20:45:56 -0800 | 
| commit | e80005ea63bb9b1eee33a8876ad74ed5d50478ed (patch) | |
| tree | c01095b230972b4259fc12669ce0754a3e5b1e4a /altoslib/AltosKML.java | |
| parent | a2097545dec62cd0970725bf690128dad6baf22e (diff) | |
altoslib: Don't write KML record when height data is missing
This avoids a crash dealing with corrupted flight data
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosKML.java')
| -rw-r--r-- | altoslib/AltosKML.java | 34 | 
1 files changed, 20 insertions, 14 deletions
| diff --git a/altoslib/AltosKML.java b/altoslib/AltosKML.java index aa98f0e6..d5248a17 100644 --- a/altoslib/AltosKML.java +++ b/altoslib/AltosKML.java @@ -308,19 +308,23 @@ public class AltosKML implements AltosWriter {  		stats = new AltosFlightStats(series);  		cal_data = series.cal_data();  		start(); -		folder_start("Barometric Altitude"); -		path_style_start("baro", style_color(0)); -		out.printf("Barometric Altitude\n"); -		out.printf("Max height: %s\n", AltosConvert.height.show(6, stats.max_height)); -		path_style_end(); -		path_start("Barometric Altitude", "baro"); -		for (AltosGPSTimeValue gtv : series.gps_series) -			write(gtv.gps, baro_altitude(series, gtv.time)); -		path_end(); -		for (AltosTimeValue tv : series.state_series) { -			write_point(tv, false); +		if (series.height_series != null) { +			folder_start("Barometric Altitude"); +			path_style_start("baro", style_color(0)); +			out.printf("Barometric Altitude\n"); +			out.printf("Max height: %s\n", AltosConvert.height.show(6, stats.max_height)); +			path_style_end(); +			path_start("Barometric Altitude", "baro"); +			for (AltosGPSTimeValue gtv : series.gps_series) +				write(gtv.gps, baro_altitude(series, gtv.time)); +			path_end(); +			if (series.state_series != null) { +				for (AltosTimeValue tv : series.state_series) { +					write_point(tv, false); +				} +			} +			folder_end();  		} -		folder_end();  		folder_start("GPS Altitude");  		path_style_start("gps", style_color(1));  		out.printf("GPS Altitude"); @@ -330,8 +334,10 @@ public class AltosKML implements AltosWriter {  		for (AltosGPSTimeValue gtv : series.gps_series)  			write(gtv.gps, gtv.gps.alt);  		path_end(); -		for (AltosTimeValue tv : series.state_series) { -			write_point(tv, true); +		if (series.state_series != null) { +			for (AltosTimeValue tv : series.state_series) { +				write_point(tv, true); +			}  		}  		folder_end();  		end(); | 
