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 |