X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosKML.java;h=140f3f0766b9bdb792a733c02d48dbf68f3fc869;hb=04d7d0f829ba953ffeca8ad9887a4b6b2b5d5087;hp=7e3b0e0834d56f4ff553feeda81d9a180b9c053c;hpb=708e7937cba52982b91244cf89bfbff46d346135;p=fw%2Faltos diff --git a/altosui/AltosKML.java b/altosui/AltosKML.java index 7e3b0e08..140f3f07 100644 --- a/altosui/AltosKML.java +++ b/altosui/AltosKML.java @@ -15,13 +15,10 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package AltosUI; +package altosui; -import java.lang.*; import java.io.*; -import java.text.*; -import java.util.*; -import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altoslib_1.*; public class AltosKML implements AltosWriter { @@ -29,6 +26,7 @@ public class AltosKML implements AltosWriter { PrintStream out; int state = -1; AltosRecord prev = null; + double gps_start_altitude; static final String[] kml_state_colors = { "FF000000", @@ -110,9 +108,15 @@ public class AltosKML implements AltosWriter { void coord(AltosRecord record) { AltosGPS gps = record.gps; + double altitude; + + if (record.height() != AltosRecord.MISSING) + altitude = record.height() + gps_start_altitude; + else + altitude = gps.alt; out.printf(kml_coord_fmt, gps.lon, gps.lat, - record.filtered_altitude(), (double) gps.alt, + altitude, (double) gps.alt, record.time, gps.nsat); } @@ -133,8 +137,7 @@ public class AltosKML implements AltosWriter { if (gps == null) return; - if ((record.seen & (AltosRecord.seen_flight)) == 0) - return; + if ((record.seen & (AltosRecord.seen_gps_lat)) == 0) return; if ((record.seen & (AltosRecord.seen_gps_lon)) == 0) @@ -142,11 +145,9 @@ public class AltosKML implements AltosWriter { if (!started) { start(record); started = true; + gps_start_altitude = gps.alt; } - if (prev != null && - prev.gps.second == record.gps.second && - prev.gps.minute == record.gps.minute && - prev.gps.hour == record.gps.hour) + if (prev != null && prev.gps_sequence == record.gps_sequence) return; if (record.state != state) { state = record.state;