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.
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 &:
| Opcja | Wartości | Co robi |
|---|---|---|
region | baltic-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, strait-of-hormuz, gulf-of-finland, india-pakistan-border, taiwan-strait, south-china-sea, 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, cameroon | 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 | satellite (domyślnie), globe, dark, light, streets, osm, osm-dark | 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. osm to OpenStreetMap z OpenFreeMap: styl do telewizji i druku, do swobodnej publikacji z podaniem źródła. osm-dark to ta sama mapa w ciemnych kolorach, z tym samym podpisem źródła. |
lang | auto, en, no, uk, pl, tr, es, fr, de, ar, zh, he, ru, ja, fi | 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. |
date | YYYY-MM-DD | Pokazuje 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.
Niektóre wykresy regionów oznaczają wydarzenia ze źródłami numerowanymi znacznikami: do trzech w widokach 30 i 90 dni, pięć w ostatnim roku i dwie długotrwałe zmiany we wszystkich dniach, a także wydarzenie w najwyższym punkcie wykresu. Seria zawiera je jako events, każde z datą, kategorią, etykietą, źródłem i views, które je oznaczają. Znacznik oznacza, że wydarzenie miało miejsce w okolicy zmiany, a nie że ją wywołało.
Cały zbiór danych
Aby pobrać wiele dób naraz, na przykład miesiąc, rok albo wszystkie zapisane doby, skorzystaj ze strony pobierania, zamiast pobierać je doba po dobie.
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% i r powyżej 10%, oba przy co najmniej 2 objętych samolotach (1 objęty samolot to zawsze g), p powyżej 50% przy co najmniej 12 objętych samolotach, 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 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). Żądania z innych stron i skryptów są ograniczone do 120 na minutę z jednego adresu; powyżej tego API odpowiada kodem 429 z nagłówkiem Retry-After. 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 14 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/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.
