Save up to 17% with yearly billing

See pricing

Funknavigationsanlagen (Navaids)

Durchsuchen Sie die Funknavigationsinfrastruktur — VOR (VHF Omnidirectional Range, die wichtigste Navigationsanlage auf der Strecke), NDB (Non-Directional Beacon, ungerichtetes Funkfeuer), ILS (Instrument Landing System, Instrumentenlandesystem), DME (Distance Measuring Equipment, Entfernungsmessgerät), TACAN (Tactical Air Navigation) sowie kombinierte Anlagen wie VORTAC (am selben Standort befindliche VOR- und TACAN-Anlage). Verwenden Sie diesen Endpoint für Routen-Overlays, Kontextpanels zum Anflug oder Kartenebenen, wenn Sie mehr Navaids benötigen als die Teilmenge, die unter Flughäfen eingebettet ist.

Mindestens ein Filter ist erforderlich (ident, airport, type, country oder bbox). Ein ungefilterter globaler Export ist gesperrt.

Anfrage

Voraussetzungen

Auth
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →
GEThttps://data.skylinkapi.com/v3.1/navaids
ParameterTypErforderlichStandardBeschreibung
identstringMindestens ein Filter erforderlich-Kennung der Navigationsanlage, z. B. JFK
airportstringMindestens ein Filter erforderlich-ICAO-Flughafencode für zugehörige Navaids
typestringMindestens ein Filter erforderlich-Typ der Navigationsanlage, z. B. VOR, NDB, VORTAC, ILS, DME
countrystringMindestens ein Filter erforderlich-Ländercode nach ISO 3166-1 alpha-2
bboxstringMindestens ein Filter erforderlich-Begrenzungsrahmen: lat1,lon1,lat2,lon2 — zuerst die südwestliche Ecke, dann die nordöstliche. Beispiel: 40,-74,41,-73
limitintegerNein100Maximale Anzahl zurückgegebener Datensätze (max. 500)

Kombinieren Sie Filter (z. B. country=US&type=[VOR](https://en.wikipedia.org/wiki/VHF_omnidirectional_range)), um große Ergebnismengen einzugrenzen.

Antwort

{
  "navaids": [
    {
      "id": 89475,
      "ident": "JFK",
      "name": "Kennedy",
      "type": "VOR-DME",
      "frequency_khz": 115900.0,
      "latitude_deg": 40.63290023803711,
      "longitude_deg": -73.77140045166016,
      "elevation_ft": 11.0,
      "iso_country": "US",
      "dme_frequency_khz": 115900.0,
      "dme_channel": "106X",
      "slaved_variation_deg": -12.001,
      "magnetic_variation_deg": -13.182,
      "usageType": "BOTH",
      "power": "HIGH",
      "associated_airport": "KJFK"
    }
  ],
  "total": 1,
  "filters_applied": {
    "ident": "JFK"
  }
}

Felder der obersten Ebene

FeldTypErforderlichBeschreibung
navaidsarrayJaGefundene Navaid-Datensätze (kann [] sein)
totalintegerJaAnzahl der zurückgegebenen Datensätze
filters_appliedobjectJaWiedergabe der akzeptierten Filter
FeldTypErforderlichNull?Beschreibung
idintegerJaNieNumerische Kennung des Datensatzes
identstringJaNieKennung der Navigationsanlage
namestringJaNieName der Navigationsanlage
typestringJaNieAnlagentyp (VOR-DME, NDB usw.)
frequency_khznumber | nullNeinJaPrimärfrequenz in kHz
latitude_degnumberJaNieBreitengrad (WGS-84)
longitude_degnumberJaNieLängengrad (WGS-84)
elevation_ftnumber | nullNeinJaHöhe in Fuß MSL
iso_countrystring | nullNeinJaLändercode
dme_frequency_khznumber | nullNeinJaDME-Frequenz, sofern zutreffend
dme_channelstring | nullNeinJaDME-Kanal, z. B. 106X
slaved_variation_degnumber | nullNeinJaEingestellte (slaved) magnetische Missweisung
magnetic_variation_degnumber | nullNeinJaLokale magnetische Missweisung (Winkel zwischen geografischem und magnetischem Norden an der Navigationsanlage)
usageTypestring | nullNeinJaNutzungsklasse (z. B. BOTH)
powerstring | nullNeinJaLeistungsklasse des Senders
associated_airportstring | nullNeinJaICAO-Flughafencode, falls einem Flughafen zugeordnet
Optionale Avionikfelder (Nullbarkeit)Abschnitt aufklappen

dme_frequency_khz, dme_channel, slaved_variation_deg und magnetic_variation_deg sind je nach Anlagentyp häufig null. associated_airport kann bei Navaids auf der Strecke (En-Route) null sein. Behandeln Sie den Navaid-type als offenen String — unbekannte Werte dürfen keinen harten Fehler auslösen.

Client-Typen

"""Navaid search response models for GET /navaids."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass NavaidsSearchRequest:    ident: str | None = None    airport: str | None = None    type: str | None = None    country: str | None = None    bbox: str | None = None    limit: int | None = None@dataclassclass NavaidRecord:    id: int    ident: str    name: str    type: str    frequency_khz: float | None    latitude_deg: float    longitude_deg: float    elevation_ft: float | None    iso_country: str | None    dme_frequency_khz: float | None    dme_channel: str | None    slaved_variation_deg: float | None    magnetic_variation_deg: float | None    usageType: str | None    power: str | None    associated_airport: str | None@dataclassclass NavaidsResponse:    navaids: list[NavaidRecord]    total: int    filters_applied: dict[str, str]

Integration

Navaids rund um einen Flughafen abrufen und kartenfertige Objekte für Routen-Overlays zurückgeben.

Das folgende Beispiel speichert Abfrageergebnisse 6 Stunden im Cache und verwendet explizite Timeouts, damit das Rendern der Karte bei einer langsamen Antwort nicht hängen bleibt.

import osimport timefrom dataclasses import dataclassimport requestsHEADERS = {    "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}BASE = "https://data.skylinkapi.com/v3.1"CACHE: dict[str, tuple[dict, float]] = {}NAVAID_TTL = 21_600  # 6 h@dataclassclass NavaidPoint:    ident: str    name: str    navaid_type: str    latitude: float    longitude: float    frequency_khz: float | None    associated_airport: str | Nonedef fetch_navaids(*, airport: str) -> list[dict]:    airport = airport.upper()    key = f"navaids:airport:{airport}"    cached = CACHE.get(key)    if cached and time.time() < cached[1]:        return cached[0]["navaids"]    try:        r = requests.get(            f"{BASE}/navaids",            headers=HEADERS,            params={"airport": airport},            timeout=(10, 15),        )    except requests.Timeout as exc:        raise RuntimeError(f"SkyLink timeout fetching navaids for {airport}") from exc    r.raise_for_status()    data = r.json()    CACHE[key] = (data, time.time() + NAVAID_TTL)    return data.get("navaids", [])def navaid_points_for_map(airport: str) -> list[NavaidPoint]:    return [        NavaidPoint(            ident=item["ident"],            name=item["name"],            navaid_type=item["type"],            latitude=item["latitude_deg"],            longitude=item["longitude_deg"],            frequency_khz=item.get("frequency_khz"),            associated_airport=item.get("associated_airport"),        )        for item in fetch_navaids(airport=airport)    ]if __name__ == "__main__":    import json    from dataclasses import asdict    points = navaid_points_for_map("KJFK")    print(json.dumps([asdict(p) for p in points[:8]], indent=2))

Hinweise zur Implementierung

Früh filtern. Kombinieren Sie die Filter country, type oder airport, um die Antwortgröße und die Unübersichtlichkeit der Karte zu reduzieren.

BBox-Format. Verwenden Sie lat1,lon1,lat2,lon2 (Südwest → Nordost), passend zu Höhenwinde, PIREPs und AIRMET/SIGMET — nicht minLon,minLat,maxLon,maxLat.

Navaids am Flughafen. Flughäfen bettet pro Platz eine Teilmenge ein. Verwenden Sie diesen Endpoint für bbox-Abfragen, Typ-/Länderfilter oder Overlays, die über die Abfrage eines einzelnen Flughafens hinausgehen.

Fehlerantworten

Gemeinsame Fehler: Fehlerbehandlung. Endpoint-spezifisch:

400 - keine Filter angegeben

{
  "detail": "At least one filter is required: ident, airport, type, country, or bbox. Returning the full navaid dataset unfiltered is not supported."
}

400 - ungültige bbox

{
  "detail": "Invalid bbox: could not convert string to float: 'bad'"
}
GET
/navaids
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Query Parameters

ident?|

Navaid identifier — partial, case-insensitive (e.g. JFK, VOR)

airport?|

Associated airport ICAO code — exact match (e.g. KJFK)

type?|

Navaid type — exact, case-insensitive (e.g. VOR, NDB, ILS, DME, TACAN)

country?|

ISO country code — exact match (e.g. US, GB)

bbox?|

Bounding box as lat1,lon1,lat2,lon2 (SW corner to NE corner)

limit?Limit

Maximum number of results to return (default 100, max 500)

Default100
Range1 <= value <= 500

Response Body

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/navaids"
{
  "navaids": [
    {
      "id": 0,
      "ident": "string",
      "name": "string",
      "type": "string",
      "frequency_khz": 0,
      "latitude_deg": 0,
      "longitude_deg": 0,
      "elevation_ft": 0,
      "iso_country": "string",
      "dme_frequency_khz": 0,
      "dme_channel": "string",
      "slaved_variation_deg": 0,
      "magnetic_variation_deg": 0,
      "usageType": "string",
      "power": "string",
      "associated_airport": "string"
    }
  ],
  "total": 0,
  "filters_applied": {}
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Integrationsleitfäden

LeitfadenInhalt
FlughäfenAbfrage, Frequenzen, Vergleich von Start- und Landebahnen
FlughafensucheAutovervollständigung und nächstgelegener Flughafen per GPS
NavaidsKarten-Overlay und ILS-Filter
Fehlerbehandlung404, leere Suche, Validierung
Caching & MonitoringTTLs und Protokollierung des Kontingents

Siehe auch: Flughäfen · Flughafensuche · Flugplatzkarten