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
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →https://data.skylinkapi.com/v3.1/navaids| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
ident | string | Mindestens ein Filter erforderlich | - | Kennung der Navigationsanlage, z. B. JFK |
airport | string | Mindestens ein Filter erforderlich | - | ICAO-Flughafencode für zugehörige Navaids |
type | string | Mindestens ein Filter erforderlich | - | Typ der Navigationsanlage, z. B. VOR, NDB, VORTAC, ILS, DME |
country | string | Mindestens ein Filter erforderlich | - | Ländercode nach ISO 3166-1 alpha-2 |
bbox | string | Mindestens ein Filter erforderlich | - | Begrenzungsrahmen: lat1,lon1,lat2,lon2 — zuerst die südwestliche Ecke, dann die nordöstliche. Beispiel: 40,-74,41,-73 |
limit | integer | Nein | 100 | Maximale 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
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
navaids | array | Ja | Gefundene Navaid-Datensätze (kann [] sein) |
total | integer | Ja | Anzahl der zurückgegebenen Datensätze |
filters_applied | object | Ja | Wiedergabe der akzeptierten Filter |
Navaid-Eintrag (navaids[])
| Feld | Typ | Erforderlich | Null? | Beschreibung |
|---|---|---|---|---|
id | integer | Ja | Nie | Numerische Kennung des Datensatzes |
ident | string | Ja | Nie | Kennung der Navigationsanlage |
name | string | Ja | Nie | Name der Navigationsanlage |
type | string | Ja | Nie | Anlagentyp (VOR-DME, NDB usw.) |
frequency_khz | number | null | Nein | Ja | Primärfrequenz in kHz |
latitude_deg | number | Ja | Nie | Breitengrad (WGS-84) |
longitude_deg | number | Ja | Nie | Längengrad (WGS-84) |
elevation_ft | number | null | Nein | Ja | Höhe in Fuß MSL |
iso_country | string | null | Nein | Ja | Ländercode |
dme_frequency_khz | number | null | Nein | Ja | DME-Frequenz, sofern zutreffend |
dme_channel | string | null | Nein | Ja | DME-Kanal, z. B. 106X |
slaved_variation_deg | number | null | Nein | Ja | Eingestellte (slaved) magnetische Missweisung |
magnetic_variation_deg | number | null | Nein | Ja | Lokale magnetische Missweisung (Winkel zwischen geografischem und magnetischem Norden an der Navigationsanlage) |
usageType | string | null | Nein | Ja | Nutzungsklasse (z. B. BOTH) |
power | string | null | Nein | Ja | Leistungsklasse des Senders |
associated_airport | string | null | Nein | Ja | ICAO-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'"
}Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Query Parameters
Navaid identifier — partial, case-insensitive (e.g. JFK, VOR)
Associated airport ICAO code — exact match (e.g. KJFK)
Navaid type — exact, case-insensitive (e.g. VOR, NDB, ILS, DME, TACAN)
ISO country code — exact match (e.g. US, GB)
Bounding box as lat1,lon1,lat2,lon2 (SW corner to NE corner)
Maximum number of results to return (default 100, max 500)
1001 <= value <= 500Response 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
| Leitfaden | Inhalt |
|---|---|
| Flughäfen | Abfrage, Frequenzen, Vergleich von Start- und Landebahnen |
| Flughafensuche | Autovervollständigung und nächstgelegener Flughafen per GPS |
| Navaids | Karten-Overlay und ILS-Filter |
| Fehlerbehandlung | 404, leere Suche, Validierung |
| Caching & Monitoring | TTLs und Protokollierung des Kontingents |
Siehe auch: Flughäfen · Flughafensuche · Flugplatzkarten
Flughafensuche
Flughäfen nach Text, Koordinaten oder IP suchen – nach Relevanz sortierte Ergebnisse für Autovervollständigung und Suche nach dem nächsten Flughafen.
Flughäfen
Integrationsübersicht für Flughafendaten – detaillierte Profile, Suche und Funknavigationsanlagen (Navaids) mit lauffähigen Beispielen und Mustern für den Produktivbetrieb.