Zum Inhalt

AirportQueryHandler.Lookup

Eigenschaft Wert
Modul NavDb
Klasse AirportQueryHandler
Typ Function
Sichtbarkeit Public
Datei NavDb/AirportQueryHandler.vb

Beschreibung

Sucht einen Flughafen anhand seines ICAO-Codes (case-insensitive) im vorgeladenen Speicher-Dictionary. Der uebergebene ICAO-Code wird getrimmt und in Grossbuchstaben konvertiert. Das Ergebnis ist ein AirportResult mit Found=True und dem zugehoerigen AirportRecord, oder Found=False mit Airport=Nothing wenn kein Eintrag vorhanden ist.

Signatur

Public Function Lookup(icaoCode As String) As AirportResult

Parameter

Name Typ Beschreibung Standard
icaoCode String ICAO-Code des Flughafens (z.B. "EDDF", "EGLL"), case-insensitive

Rückgabewert

Typ Beschreibung
AirportResult Ergebnisobjekt mit Found-Flag und dem AirportRecord (inkl. Runways und ILS-Daten)

Ablaufdiagramm

flowchart TD
    A[Start] --> B[icaoCode trimmen und ToUpperInvariant]
    B --> C{_ByIcao.TryGetValue?}
    C -- Ja --> D["Return AirportResult(True, airport)"]
    C -- Nein --> E["Return AirportResult(False, Nothing)"]

Aufgerufen von

Modul Sub/Function Kontext
NavDb NavDbActor.Receive(Of LookupAirport) Beantwortet Flughafen-Abfragen vom Akka-Nachrichtensystem

Ruft auf

Modul Sub/Function Kontext
System.Collections.Generic Dictionary.TryGetValue O(1)-Lookup im vorgeladenen _ByIcao-Dictionary

Beispiel

Dim handler As New AirportQueryHandler("C:\NavData\ASTNAV.mdb")
handler.PreloadAll()

Dim result As AirportResult = handler.Lookup("EDDF")
If result.Found Then
    Console.WriteLine($"Flughafen: {result.Airport.Name}, Elevation: {result.Airport.Elevation} ft")
    Console.WriteLine($"Runways: {result.Airport.Runways.Count}")
Else
    Console.WriteLine("Flughafen nicht gefunden")
End If

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation