diff --git a/dump1090.c b/dump1090.c index c32e6b2..9f00840 100644 --- a/dump1090.c +++ b/dump1090.c @@ -3323,18 +3323,28 @@ char *aircraftsToJson(int *len) { p += l; buflen -= l; while(a) { int altitude = a->altitude, speed = a->speed; - + int position = 0; + int track = 0; + /* Convert units to metric if --metric was specified. */ if (Modes.metric) { altitude = (int) (altitude / 3.2828); speed = (int) (speed * 1.852); } + if (a->bFlags & MODES_ACFLAGS_LATLON_VALID) { + position = 1; + } + + if (a->bFlags & MODES_ACFLAGS_HEADING_VALID) { + track = 1; + } + l = snprintf(p,buflen, "{\"hex\":\"%06x\", \"squawk\":\"%04x\", \"flight\":\"%s\", \"lat\":%f, " - "\"lon\":%f, \"altitude\":%d, \"track\":%d, " + "\"lon\":%f, \"validposition\":%d, \"altitude\":%d, \"track\":%d, \"validtrack\":%d," "\"speed\":%d, \"messages\":%ld, \"seen\":%d},\n", - a->addr, a->modeA, a->flight, a->lat, a->lon, a->altitude, a->track, + a->addr, a->modeA, a->flight, a->lat, a->lon, position, a->altitude, a->track, track, a->speed, a->messages, (int)(now - a->seen)); p += l; buflen -= l; diff --git a/public_html/script.js b/public_html/script.js index 42db4b8..9168c19 100644 --- a/public_html/script.js +++ b/public_html/script.js @@ -118,8 +118,8 @@ function fetchData() { stillhere[plane.hex] = true; plane.flight = $.trim(plane.flight); - if (plane.lat != 0 && plane.lon != 0) { - // Show only planes with position + // Show only planes with position + if (plane.validposition == 1) { var marker = null; PlanesOnMap++; @@ -175,7 +175,8 @@ function fetchData() { } } - refreshTableInfo() ; + refreshTableInfo(); + refreshSelectedInfo(); }); }