getData=asyncfunction(){constresponse=awaitfetch("https://airspac.eu/adsb-sources/getCreotechV2AdsbTicks");constdata=awaitresponse.json();consttimestamp=Date.now();constdelta=5000;// do konfiguracjiconstbyIcao={};for(leti=0,l=data.length;i<l;i++){leticao=data[i].icao;// ignorujemy wszystkie informacje starsze niż $delta sekund// w przyszłości można to rozwinąć tak, że np. odtwarzamy ścieżki na podstawie danych od początku ale na ten moment nie widzę takiej potrzebyif(data[i].timestamp>=(timestamp-delta))continue;// jeśli mamy nowszą informację o danym dronie, to zastępujemy obecnie posiadaną// _n wypełniamy po to, żeby wiedzieć ile mamy powtarzających się informacji o dronie (nie jest niezbędne)if(byIcao[icao]&&byIcao[icao].timestamp<data[i]){byIcao[icao]=data[i];data[i]._n+=1;}elseif(byIcao[icao]){data[i]._n+=1;}else{byIcao[icao]=data[i];data[i]._n=1;}}constfiltered=Object.values(byIcao);console.log(filtered);}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.