Zum Inhalt

NavaidQueryHandler.LookupWaypointById

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

Beschreibung

Gibt den WaypointRecord fuer die angegebene interne Datenbank-ID zurueck. Diese Methode wird als Delegate (AddressOf LookupWaypointById) an den ProcedureQueryHandler uebergeben, um Waypoint-IDs bei der Airway-Expansion aufzuloesen, ohne eine direkte Kopplung zwischen den Handlern zu erzeugen. Gibt Nothing zurueck, falls die ID nicht existiert.

Signatur

Public Function LookupWaypointById(id As Integer) As WaypointRecord

Parameter

Name Typ Beschreibung Standard
id Integer Interne Datenbank-ID des Waypoints (Primaerschluessel der Waypoint-Tabelle)

Rückgabewert

Typ Beschreibung
WaypointRecord Der gefundene Waypoint-Datensatz oder Nothing, falls die ID nicht existiert

Ablaufdiagramm

flowchart TD
    A[Start] --> B{_WaypointById.TryGetValue?}
    B -- Ja --> C[Return wp]
    B -- Nein --> D[Return Nothing]

Aufgerufen von

Modul Sub/Function Kontext
NavDb NavDbActor (Konstruktor) Als Delegate an ProcedureQueryHandler uebergeben: AddressOf _NavaidHandler.LookupWaypointById
NavDb ProcedureQueryHandler.LoadAirway Indirekter Aufruf ueber _WaypointLookup-Delegate zur Waypoint-Aufloesung bei Airway-Expansion

Ruft auf

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

Beispiel

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

' Waypoint ueber interne DB-ID aufloesen
Dim wp As WaypointRecord = handler.LookupWaypointById(5678)
If wp IsNot Nothing Then
    Console.WriteLine($"Waypoint: {wp.Identifier}, Lat={wp.Latitude:F6}, Lon={wp.Longitude:F6}")
End If

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation