Zum Inhalt

DuplicateNamesPage.SetCandidates

Eigenschaft Wert
Modul Mcdu/Pages
Klasse DuplicateNamesPage
Typ Sub
Sichtbarkeit Public
Datei Mcdu/Pages/NavSearchPages.vb

Beschreibung

Setzt die typisierte Kandidatenliste fuer die Disambiguierungsanzeige. Die uebergebenen Kandidaten werden in eine interne Liste kopiert und nach Entfernung von der Referenzposition sortiert (aufsteigend, analog VB6). Der Seitenindex wird auf 0 zurueckgesetzt. Wenn zuvor SetReferencePosition aufgerufen wurde, erfolgt die Sortierung per Haversine-Grosskreisberechnung.

Signatur

Public Sub SetCandidates(candidates As IEnumerable(Of NavDb.IdentLookupMatch))

Parameter

Name Typ Beschreibung Standard
candidates IEnumerable(Of NavDb.IdentLookupMatch) Aufzaehlung der Wegpunkt-/Navaid-Treffer mit Ident, Latitude, Longitude, Frequency, SourceType

Ablaufdiagramm

flowchart TD
    A[Start] --> B[Kandidaten in neue Liste kopieren]
    B --> C{Referenzposition gesetzt?}
    C -- Ja --> D[Nach Entfernung sortieren via GreatCircleNm]
    C -- Nein --> E[Reihenfolge beibehalten]
    D --> F[TopIndex auf 0 setzen]
    E --> F
    F --> G[Ende]

Aufgerufen von

Modul Sub/Function Kontext
McduActor HandleDuplicateNames Wenn Nav-Suche mehrere Treffer liefert

Ruft auf

Modul Sub/Function Kontext
GreatCircleNm (Private) Entfernungsberechnung fuer Sortierung
LINQ OrderBy (System.Linq) Sortierung der Kandidatenliste

Beispiel

Dim page As New DuplicateNamesPage()
page.SetReferencePosition(50.0, 8.5)

Dim matches As New List(Of NavDb.IdentLookupMatch)()
matches.Add(New NavDb.IdentLookupMatch With {.Ident = "FRA", .Latitude = 50.03, .Longitude = 8.57})
matches.Add(New NavDb.IdentLookupMatch With {.Ident = "FRA", .Latitude = 43.62, .Longitude = 1.37})

page.SetCandidates(matches)
' Kandidaten sind nun nach Entfernung sortiert (naechster zuerst)

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation