Die Daten lesen

Zuletzt aktualisiert

Die öffentliche API liefert die Sechsecke, die die Karte zeichnet, für das letzte Update oder einen gespeicherten Tag, ohne rohe Flugzeugpositionen. Das vollständige Schema steht in OpenAPI 3.1.

Aktuelles Fenster

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

GET https://api.gpsinterference.com/interference.json ist dasselbe Dokument, das die Karte nutzt. Es enthält einen UTC-Tag mit Flügen, history_date, und wird einmal täglich gegen 05:00 UTC neu erstellt.

Ein UTC-Tag

GET https://api.gpsinterference.com/v1/interference/YYYY-MM-DD

Die Karte, wie sie beim letzten Update dieses UTC-Tages war (keine Zählung nur der Flüge dieses Datums), mit denselben Feldern wie die aktuelle Zusammenfassung plus archive_date und complete. complete ist false, solange der Tag noch heute ist und ersetzt werden kann; ein abgeschlossener Tag ändert sich nie. Ein Datum ohne gespeicherte Karte liefert 404 und {"error":"no archive"}.

GET https://api.gpsinterference.com/v1/interference/days listet jeden gespeicherten Tag: date, updated und hexes (eine Anzahl), ohne Polygone.

Sechseck-Felder

FeldBedeutung
hZellen-ID, column_row im Web-Mercator-Sechsecknetz.
gVerschiedene Flugzeuge in der Zelle, deren NACp über 7 blieb.
bVerschiedene Flugzeuge, die in der Zelle mindestens einmal NACp 7 oder niedriger meldeten.
pAnteil betroffen, in Prozent, auf eine Nachkommastelle: 100 × b ÷ (g + b). Die Farbe richtet sich danach.
cg unter 3 %, y von 3 % bis 10 %, r über 10 %, aus dem gerundeten p.
polyRing aus [latitude, longitude]-Paaren, in Grad.

Die Zellen sind flache Sechsecke im Web-Mercator-Netz mit einem Längengradradius von 0,34° (etwa 38 km von der Mitte zur Ecke am Äquator, 22 km bei 54°N). Zellen mit weniger als 3 Flugzeugen werden weggelassen.

bands (Zusammenfassungen ab November 2026) teilt dieselben Zahlen nach barometrischer Höhe: edges_ft ist [5000, 15000, 30000] und hexes enthält vier Listen, für unter 5.000 ft, 5.000–15.000 ft, 15.000–30.000 ft und über 30.000 ft. Jeder Eintrag ist { h, g, b }, wobei Polygon und Anteil vom Sechseck mit demselben h in der Hauptliste stammen (p = 100 × b ÷ (g + b), dieselben Schwellen für c). Ein Band lässt Zellen mit weniger als 3 Flugzeugen in diesem Band weg. Ein Flugzeug, das in einer Zelle das Band wechselt, wird in jedem gezählt, die vier Bänder ergeben also nicht die Hauptzahlen; Flugzeuge am Boden oder ohne Höhe sind nur in den Hauptzahlen.

Felder der obersten Ebene: history_date ist der UTC-Tag der Flüge; updated ist, wann die Zusammenfassung geschrieben wurde (UTC); grid ist mercator-r0.34; window_minutes ist 1440, ein Tag; sources ist adsb.lol-globe-history plus die adsb.lol-Version, aus der sie gebaut wurde, etwa adsb.lol-prod-0. Vor November 2026 gespeicherten Zusammenfassungen kann history_date fehlen, und sie tragen polled_points, grid_points und failed_points aus der alten Live-Erfassung.

Caching, CORS und Grenzen

Die aktuelle Zusammenfassung, der heutige gespeicherte Tag und der Datumsindex werden mit cache-control: public, max-age=60 gesendet. Ein abgeschlossener Tag wird mit max-age=86400 gesendet.

Browser-CORS ist nur für https://gpsinterference.com und https://www.gpsinterference.com erlaubt, sodass eine andere Website das JSON nicht aus den Browsern ihrer Besucher lesen kann; curl und serverseitige Anfragen sind nicht betroffen. Es gibt kein festes Ratenlimit, aber sehr häufige Anfragen können gedrosselt werden. Die Daten ändern sich einmal täglich, folge also den Cache-Headern, statt abzufragen.

Quellenangabe

Flugdaten aus dem Globe-Verlauf von adsb.lol, geteilt unter der Open Database License (ODbL). Zitiere https://gpsinterference.com. Eine geringe gemeldete Genauigkeit ist kein bestätigtes Jamming und identifiziert keine Quelle. Basiskarten-Kacheln sind getrennt und nicht Teil dieser API.

Die Daten zitieren

Zitiere den gespeicherten Tag, den du genutzt hast: Die aktuelle Karte ändert sich täglich, ein gespeicherter Tag nicht.

APA

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

Ein gespeicherter Tag:

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}
}

Beispiele

curl -sS "https://api.gpsinterference.com/v1/interference/latest"
curl -sS "https://api.gpsinterference.com/v1/interference/2026-10-25"

In JavaScript, auf dieser Seite oder einem Server:

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 }

Die Methodik erklärt, wie die Zahlen entstehen.

Die Karte einbetten

Die Live-Karte darf frei eingebettet werden. Füge das dort ein, wo sie erscheinen soll:

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

Stelle sie unten ein und kopiere den Code, oder füge die Optionen selbst hinzu.

Optionen

Füge diese an https://gpsinterference.com/embed an, verbunden mit &:

OptionWerteWas sie bewirkt
regionbaltic-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, 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Öffnet auf dieser Region, an die Größe des Rahmens angepasst.
bboxsouth,west,north,eastÖffnet auf einem beliebigen Gebiet, in Grad, zum Beispiel bbox=30,-120,40,-105.
lat, lon, zoomZahlenÖffnet auf einem Mittelpunkt und Zoom statt auf einem Gebiet.
lock1Hält Leser im Gebiet: Sie können darin schwenken und zoomen, aber nicht davon weg.
styledark (Standard), light, streets, satelliteDie Karte, auf der die Sechsecke liegen: dunkel, eine klare helle Karte für weiße Seiten, Straßen oder Satellit mit Grenzen und Ortsnamen. Karten von MapTiler.
nameson, off (Standard)Ortsnamen auf der Karte.
altall (Standard), low, mid, high, cruiseZeigt nur Flugzeuge in einem Höhenband: unter 5.000 ft, 5.000–15.000 ft, 15.000–30.000 ft oder über 30.000 ft (barometrisch). Vor der Höhenerfassung gespeicherte Tage zeigen alle Flugzeuge.
controlsonZeigt die Schalter für Stil, Namen und Flughöhe, damit Leser sie ändern können.
dateYYYY-MM-DDZeigt einen gespeicherten Tag statt der aktuellen Karte, für eine Geschichte über diesen Tag.