package altosui;
import java.io.*;
-import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altoslib_1.*;
public class AltosKML implements AltosWriter {
PrintStream out;
int state = -1;
AltosRecord prev = null;
+ double gps_start_altitude;
static final String[] kml_state_colors = {
"FF000000",
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);
}
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)
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;