Zum Inhalt

NavaidQueryHandler.LookupWaypoint

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

Beschreibung

Sucht alle Waypoints anhand eines Identifiers (case-insensitive) im vorgeladenen Speicher-Dictionary. Mehrere Waypoints koennen denselben Identifier teilen (verschiedene geographische Positionen). Das Ergebnis ist ein WaypointResult mit Found=True und einer schreibgeschuetzten Liste der Treffer, oder Found=False mit einer leeren Liste.

Signatur

Public Function LookupWaypoint(identifier As String) As WaypointResult

Parameter

Name Typ Beschreibung Standard
identifier String Waypoint-Kennung (z.B. "LOGAN", "ANEKI"), case-insensitive

Rückgabewert

Typ Beschreibung
WaypointResult Ergebnisobjekt mit Found-Flag und schreibgeschuetzter Liste aller passenden WaypointRecords

Ablaufdiagramm

flowchart TD
    A[Start] --> B[identifier trimmen und ToUpperInvariant]
    B --> C{_WaypointByIdent.TryGetValue?}
    C -- Ja --> D["Return WaypointResult(True, list.AsReadOnly)"]
    C -- Nein --> E["Return WaypointResult(False, leere Liste)"]

Aufgerufen von

Modul Sub/Function Kontext
NavDb NavDbActor.Receive(Of LookupWaypoint) Beantwortet Waypoint-Abfragen vom Akka-Nachrichtensystem
NavDb NavDbActor (Kombi-Lookup) Waypoint-Suche im Rahmen einer kombinierten Navaid/Waypoint-Abfrage
Mcdu McduActor Waypoint-Suche bei MCDU-Seiteneingaben (z.B. Lateral Revision)

Ruft auf

Modul Sub/Function Kontext
System.Collections.Generic Dictionary.TryGetValue O(1)-Lookup im vorgeladenen _WaypointByIdent-Dictionary
System.Collections.Generic List.AsReadOnly Erzeugt schreibgeschuetzte Kopie der Trefferliste

Beispiel

Dim handler As New NavaidQueryHandler("C:\NavData\ASTNAV.mdb", "C:\NavData\Userdata.mdb")
handler.PreloadAll()

Dim result As WaypointResult = handler.LookupWaypoint("LOGAN")
If result.Found Then
    For Each wp As WaypointRecord In result.Waypoints
        Console.WriteLine($"{wp.Identifier}: Lat={wp.Latitude:F6}, Lon={wp.Longitude:F6}")
    Next
End If

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation