summaryrefslogtreecommitdiff
path: root/altoslib/AltosKML.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-11-11 20:44:27 -0800
committerKeith Packard <keithp@keithp.com>2017-11-11 20:45:56 -0800
commite80005ea63bb9b1eee33a8876ad74ed5d50478ed (patch)
treec01095b230972b4259fc12669ce0754a3e5b1e4a /altoslib/AltosKML.java
parenta2097545dec62cd0970725bf690128dad6baf22e (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.java34
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();