Snippets

Piotr Szrajber ADSB Ticks from last 5 seconds

Created by Piotr Szrajber
getData = async function() {
    const response = await fetch("https://airspac.eu/adsb-sources/getCreotechV2AdsbTicks");
    const data = await response.json();
	const timestamp = Date.now();
	const delta = 5000; // do konfiguracji
	const byIcao = {};
	for (let i = 0, l = data.length; i < l; i++) {
		let icao = 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 potrzeby
		if (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;
		} else if (byIcao[icao]) {
			data[i]._n += 1;
		} else {
			byIcao[icao] = data[i];
			data[i]._n = 1;
		}
	}
	const filtered = Object.values(byIcao);
	console.log(filtered);
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.