Czytaj dane
Ostatnia aktualizacja
Publiczne API zwraca sześciokąty, które rysuje mapa, dla ostatniej aktualizacji lub zapisanego dnia, bez surowych pozycji samolotów. Pełny schemat jest w OpenAPI 3.1.
Najnowsze okno
GET https://api.gpsinterference.com/v1/interference/latest
GET https://api.gpsinterference.com/interference.json to ten sam dokument, z którego korzysta mapa. Zawiera jedną dobę UTC lotów, history_date, i jest budowany od nowa raz dziennie około 05:00 UTC.
Jedna doba UTC
GET https://api.gpsinterference.com/v1/interference/YYYY-MM-DD
Mapa taka, jaka była przy ostatniej aktualizacji tej doby UTC (nie zliczenie samych lotów z tej daty), z tymi samymi polami co najnowsze podsumowanie plus archive_date i complete. complete jest fałszywe, dopóki doba jest jeszcze dzisiejsza i może zostać zastąpiona; zakończona doba nigdy się nie zmienia. Data bez zapisanej mapy zwraca 404 i {"error":"no archive"}.
GET https://api.gpsinterference.com/v1/interference/days wymienia każdy zapisany dzień: date, updated i hexes (liczbę), bez wielokątów.
Pola sześciokąta
| Pole | Znaczenie |
|---|---|
h | Identyfikator komórki, column_row w siatce sześciokątów Web Mercator. |
g | Różne samoloty w komórce, których NACp pozostał powyżej 7. |
b | Różne samoloty, które zgłosiły NACp 7 lub niższy co najmniej raz w komórce. |
p | Udział dotkniętych, w procentach, z jednym miejscem po przecinku: 100 × b ÷ (g + b). Kolor jest z tego brany. |
c | g poniżej 3%, y od 3% do 10%, r powyżej 10%, z zaokrąglonego p. |
poly | Pierścień par [latitude, longitude], w stopniach. |
Komórki to płaskie sześciokąty w siatce Web Mercator z promieniem 0,34° długości geograficznej (około 38 km od środka do wierzchołka na równiku, 22 km na 54°N). Komórki z mniej niż 3 samolotami są pomijane.
bands (podsumowania od listopada 2026) dzieli te same liczby według wysokości barometrycznej: edges_ft to [5000, 15000, 30000], a hexes zawiera cztery listy, dla poniżej 5000 ft, 5000–15 000 ft, 15 000–30 000 ft i powyżej 30 000 ft. Każdy wpis to { h, g, b }, z wielokątem i udziałem wziętymi z sześciokąta o tym samym h z listy głównej (p = 100 × b ÷ (g + b), te same progi dla c). Przedział pomija komórki z mniej niż 3 samolotami w tym przedziale. Samolot zmieniający przedział w komórce jest liczony w każdym, więc cztery przedziały nie sumują się do liczb głównych; samoloty na ziemi lub bez wysokości są tylko w liczbach głównych.
Pola najwyższego poziomu: history_date to doba UTC, z której pochodzą loty; updated to czas zapisania podsumowania (UTC); grid to mercator-r0.34; window_minutes to 1440, jedna doba; sources to adsb.lol-globe-history plus wydanie adsb.lol, z którego zbudowano, np. adsb.lol-prod-0. Podsumowaniom zapisanym przed listopadem 2026 może brakować history_date i mają polled_points, grid_points oraz failed_points ze starego zbierania na żywo.
Buforowanie, CORS i limity
Najnowsze podsumowanie, dzisiejszy zapisany dzień i indeks dat są wysyłane z cache-control: public, max-age=60. Zakończony dzień jest wysyłany z max-age=86400.
CORS przeglądarki jest dozwolony tylko dla https://gpsinterference.com i https://www.gpsinterference.com, więc inna strona nie może odczytać JSON-a z przeglądarek swoich odwiedzających; curl i żądania po stronie serwera nie są dotknięte. Nie ma stałego limitu częstotliwości, ale bardzo częste żądania mogą być dławione. Dane zmieniają się raz dziennie, więc stosuj nagłówki bufora zamiast odpytywać ciągle.
Podanie źródła
Dane o samolotach z historii globalnej adsb.lol, udostępniane na licencji Open Database License (ODbL). Cytuj https://gpsinterference.com. Niska zgłaszana dokładność nie jest potwierdzonym zagłuszaniem i nie wskazuje źródła. Kafelki mapy podkładowej są osobne i nie należą do tego API.
Cytowanie danych
Cytuj zapisany dzień, którego użyłeś: najnowsza mapa zmienia się codziennie, a zapisany dzień nie.
APA
GPSInterference.com. (2026). GPS interference hexagon data [Data set]. https://gpsinterference.com/docsJeden zapisany dzień:
GPSInterference.com. (2026). GPS interference hexagon data, 25 October 2026 [Data set]. https://api.gpsinterference.com/v1/interference/2026-10-25BibTeX
@dataset{gpsinterference_2026,
author = {{GPSInterference.com}},
title = {GPS Interference Hexagon Data},
year = {2026},
publisher = {GPSInterference.com},
url = {https://gpsinterference.com/docs},
note = {Built from ADS-B flight tracks from adsb.lol globe history, available under the Open Database License (ODbL). Low reported accuracy (NACp 7 or lower) is not confirmed jamming. For one UTC day, use https://api.gpsinterference.com/v1/interference/YYYY-MM-DD}
}Przykłady
curl -sS "https://api.gpsinterference.com/v1/interference/latest"
curl -sS "https://api.gpsinterference.com/v1/interference/2026-10-25"
W JavaScripcie, na tej stronie lub na serwerze:
const res = await fetch("https://api.gpsinterference.com/v1/interference/latest");
if (!res.ok) throw new Error(String(res.status));
const data = await res.json();
// data.hexes[i] is { h, g, b, p, c, poly }
Metodologia wyjaśnia, jak powstają liczby.
Osadzanie mapy
Mapę na żywo można swobodnie osadzać. Wklej to tam, gdzie ma się pojawić:
<iframe src="https://gpsinterference.com/embed" width="640" height="400"
style="border:0;width:100%;max-width:960px" loading="lazy"
title="Live GPS interference map"></iframe>
<p>Live map: <a href="https://gpsinterference.com/">GPS Interference</a></p>Ustaw ją poniżej i skopiuj kod albo dodaj opcje samodzielnie.
Opcje
Dodaj dowolne z nich do https://gpsinterference.com/embed, łącząc przez &:
| Opcja | Wartości | Co robi |
|---|---|---|
region | baltic-sea, eastern-europe, black-sea, eastern-mediterranean, middle-east, east-asia, finland, estonia, latvia, lithuania, kaliningrad, poland, norway, romania, turkey, cyprus, israel, lebanon, south-korea, north-korea, japan, china, taiwan, philippines, vietnam, sweden, denmark, germany, iceland, united-kingdom, ukraine, belarus, moldova, bulgaria, georgia, armenia, azerbaijan, greece, egypt, iran, iraq, syria, jordan, saudi-arabia, united-arab-emirates, qatar | Otwiera się na tym regionie, dopasowanym do rozmiaru ramki. |
bbox | south,west,north,east | Otwiera się na dowolnym obszarze, w stopniach, na przykład bbox=30,-120,40,-105. |
lat, lon, zoom | liczby | Otwiera się na środku i powiększeniu zamiast na obszarze. |
lock | 1 | Zatrzymuje czytelników w obszarze: mogą w nim przesuwać i powiększać, ale nie oddalać się od niego. |
style | dark (domyślnie), light, streets, satellite | Mapa, na której leżą sześciokąty: ciemna, czysta jasna mapa dla białych stron, ulice albo satelita z granicami i nazwami miejsc. Mapy od MapTiler. |
lang | auto, en, no, uk, pl, tr, es, fr, de | Język tekstu na mapie: auto używa języka przeglądarki czytelnika, albo podaj jeden kod. Bez tego: angielski. Strony regionów używają własnego języka. |
names | on, off (domyślnie) | Nazwy miejsc na mapie. |
alt | all (domyślnie), low, mid, high, cruise | Pokazuje tylko samoloty z jednego przedziału wysokości: poniżej 5000 ft, 5000–15 000 ft, 15 000–30 000 ft lub powyżej 30 000 ft (barometryczne). Dni zapisane przed rejestrowaniem wysokości pokazują wszystkie samoloty. |
controls | on | Pokazuje przełączniki stylu, nazw i wysokości lotu, by czytelnicy mogli je zmieniać. |
date | YYYY-MM-DD | Pokazuje zapisany dzień zamiast najnowszej mapy, do opowieści o tym dniu. |