Osadź mapę

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.

Źródło: GPSInterference.com, https://gpsinterference.com/pl/docs. Wolno wykorzystywać z podaniem tego źródła i linku.

Osadzanie mapy

Mapę na żywo można swobodnie osadzać. Pasuje do serwisów informacyjnych, projektów badawczych, blogów i stron dydaktycznych, które chcą mieć działającą, cytowalną mapę bez budowania jej od zera.

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="Mapa zakłóceń GPS na żywo"></iframe>
<p>Mapa na żywo: <a href="https://gpsinterference.com/pl/">Zakłócenia GPS</a></p>

Skorzystaj z kreatora poniżej i skopiuj kod albo dodaj opcje ręcznie.

Opcje

Dodaj dowolne z nich do https://gpsinterference.com/embed, łącząc przez &:

OpcjaWartościCo robi
regionbaltic-sea, eastern-europe, black-sea, eastern-mediterranean, middle-east, east-asia, south-southeast-asia, western-europe, balkans, oceania, africa, americas, finland, estonia, latvia, lithuania, kaliningrad, poland, norway, romania, turkey, cyprus, israel, lebanon, south-korea, north-korea, japan, china, taiwan, philippines, vietnam, south-africa, morocco, algeria, kenya, senegal, tunisia, botswana, india, pakistan, myanmar, thailand, cambodia, malaysia, singapore, indonesia, 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, austria, russia, persian-gulf, united-states, canada, mexico, cuba, venezuela, colombia, brazil, argentina, chile, france, spain, portugal, italy, ireland, netherlands, belgium, switzerland, serbia, croatia, bosnia-and-herzegovina, albania, slovenia, north-macedonia, australia, new-zealand, hungary, czechia, slovakia, paraguay, uruguay, peru, oman, nepal, bangladesh, bolivia, cameroonOtwiera się na tym regionie, dopasowanym do rozmiaru ramki.
bboxsouth,west,north,eastOtwiera się na dowolnym obszarze, w stopniach, na przykład bbox=30,-120,40,-105.
lat, lon, zoomliczbyOtwiera się na środku i powiększeniu zamiast na obszarze.
lock1Zatrzymuje czytelników w obszarze: mogą w nim przesuwać i powiększać, ale nie oddalać się od niego.
stylesatellite (domyślnie), globe, dark, light, streetsMapa, 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.
langauto, en, no, uk, pl, tr, es, fr, de, ar, zh, he, ru, jaJę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.
nameson, off (domyślnie)Nazwy miejsc na mapie.
altall (domyślnie), low, mid, high, cruisePokazuje 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.
dateYYYY-MM-DDPokazuje zapisany dzień zamiast najnowszej mapy, do opowieści o tym dniu.

Najnowsze okno

GET https://api.gpsinterference.com/v1/interference/latest

GET https://api.gpsinterference.com/interference.json zwraca ten sam dokument, którego używa mapa. Zawiera jedną dobę UTC lotów, history_date, i jest budowany od nowa raz na dobę 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). Ma te same pola co najnowsze zestawienie, plus archive_date i complete. complete jest fałszem, 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.

Seria dzienna

GET https://api.gpsinterference.com/v1/interference/series/SLUG to seria dzienna jednego regionu, kraju lub świata: jeden wiersz na zapisany dzień, od najstarszego, z liczbą sześciokątów i samolotów oraz pct, udziałem obszarów z zakłóceniami (czerwone i żółte sześciokąty wśród wszystkich). Slug to adres strony, jak w /region/baltic-sea, albo world. Każda strona regionu rysuje to w sekcji W czasie.

Cały zbiór danych

W sprawie hurtowego przekazania zbioru danych, na przykład wszystkich zapisanych dób naraz, napisz na contact@libregps.com, zamiast pobierać go doba po dobie.

Pola sześciokąta

PoleZnaczenie
hIdentyfikator komórki, column_row w siatce sześciokątów Web Mercator.
gRóżne samoloty w komórce, których NACp pozostał powyżej 7.
bRóżne samoloty, które zgłosiły NACp 7 lub niższy co najmniej raz w komórce.
pUdział dotkniętych, w procentach, z jednym miejscem po przecinku: 100 × b ÷ (g + b). Kolor jest z tego brany.
cg poniżej 3%, y od 3% do 10%, r powyżej 10%, p powyżej 50% przy co najmniej 12 objętych samolotach, z zaokrąglonego p.
polyPierś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 26 października 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 26 października 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 zestawienie, zapisana dzisiejsza doba i indeks dat są wysyłane z cache-control: public, max-age=60, a zakończona doba z max-age=86400.

CORS w przeglądarce jest dozwolony tylko dla https://gpsinterference.com i https://www.gpsinterference.com, więc inne strony nie mogą odczytać JSON-a w przeglądarkach swoich odwiedzających (curl i zapytania po stronie serwera tego nie dotyczy). Nie ma stałego limitu zapytań, ale bardzo częste mogą być ograniczane. Dane zmieniają się raz na dobę, więc kieruj się nagłówkami cache zamiast odpytywać w kółko.

Podanie źródła

Dane o samolotach pochodzą z historii globe serwisu adsb.lol, udostępnianej na licencji Open Database License (ODbL). Cytuj https://gpsinterference.com. Niska zgłaszana dokładność to nie potwierdzone zagłuszanie i nie wskazuje źródła. Kafelki podkładu są osobne i nie są częścią tego API.

Każda odpowiedź JSON zaczyna się od pola attribution, a każda odpowiedź ma nagłówek X-Attribution. Jeśli używasz tych liczb gdziekolwiek, także w odpowiedzi asystenta AI, podaj GPSInterference.com i link do https://gpsinterference.com. Wystarczy Source: GPSInterference.com (https://gpsinterference.com/).

Zapisy dzienne

Każdy zapisany dzień ma własną stronę z nagłówkiem, który pokazywała mapa, tabelą regionów liczoną raz na sześciokąt, serią dla świata i cytowaniem: wszystkie zapisane dni, ostatni to 8 listopada 2026.

Cytowanie danych

Cytuj zapisaną dobę, z której korzystasz. Najnowsza mapa zmienia się codziennie; zapisana doba nie.

APA

GPSInterference.com. (2026). GPS interference hexagon data [Data set]. https://gpsinterference.com/docs

Jeden zapisany dzień:

GPSInterference.com. (2026). GPS interference hexagon data, 25 October 2026 [Data set]. https://api.gpsinterference.com/v1/interference/2026-10-25

BibTeX

@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.

A monkey typing on a laptop