PlaceSearchModel QML Type
Ermöglicht den Zugriff auf die Ergebnisse der Ortssuche. Mehr...
Import Statement: | import QtLocation 6.8 |
Since: | QtLocation 5.5 |
Eigenschaften
- categories : list<Category>
- count : int
- favoritesMatchParameters : VariantMap
- favoritesPlugin : Plugin
- incremental : bool
(since QtLocation 5.12)
- limit : int
- nextPagesAvailable : bool
- plugin : Plugin
- previousPagesAvailable : bool
- recommendationId : string
- relevanceHint : enumeration
- searchArea : variant
- searchTerm : string
- status : enum
- visibilityScope : enum
Methoden
- void cancel()
- Variant data(int index, string role)
- string errorString()
- void nextPage()
- void previousPage()
- void reset()
- void update()
- void updateWith(int proposedSearchIndex)
Detaillierte Beschreibung
PlaceSearchModel stellt ein Modell für Ortssuchergebnisse innerhalb von searchArea bereit. Die Eigenschaften searchTerm und categories können festgelegt werden, um die Suchergebnisse auf Orte zu beschränken, die diesen Kriterien entsprechen.
Das PlaceSearchModel liefert sowohl gesponserte als auch organische Suchergebnisse. Bei gesponserten Suchergebnissen ist die Rolle sponsored
auf true gesetzt.
Das Modell gibt Daten für die folgenden Rollen zurück:
Rolle | Typ | Beschreibung |
---|---|---|
Typ | enum | Der Typ des Suchergebnisses. |
Titel | string | Eine Zeichenkette zur Beschreibung des Suchergebnisses. |
Symbol | PlaceIcon | Symbol, das das Suchergebnis darstellt. |
Entfernung | real | Gültig nur, wenn die Rolle type PlaceResult ist, die Entfernung zum Ort vom Zentrum des searchArea. Wenn keine searchArea angegeben wurde, ist die Entfernung NaN. |
Ort | Place | Nur gültig, wenn die Rolle type PlaceResult ist, ein Objekt, das den Ort darstellt. |
gesponsert | bool | Nur gültig, wenn die Rolle type PlaceResult ist, true, wenn das Suchergebnis ein gesponsertes Ergebnis ist. |
Arten von Suchergebnissen
Die Rolle type
kann die folgenden Werte annehmen:
PlaceSearchModel.UnknownSearchResult | Der Inhalt des Suchergebnisses ist unbekannt. |
PlaceSearchModel.PlaceResult | Das Suchergebnis enthält einen Ort. |
PlaceSearchModel.ProposedSearchResult | Das Suchergebnis enthält einen Suchvorschlag, der relevant sein könnte. |
Es kann oft hilfreich sein, einen Loader zu verwenden, um einen Delegaten zu erstellen, der je nach Art des Suchergebnisses verschiedene Componentauswählt.
Component { id: resultDelegate Loader { Component { id: placeResult Column { Text { text: title } Text { text: place.location.address.text } } } Component { id: otherResult Text { text: title } } sourceComponent: type == PlaceSearchModel.PlaceResult ? placeResult : otherResult } }
Erkennung von aktualisierten und entfernten Orten
Das PlaceSearchModel lauscht auf Orte die aktualisiert oder aus dem Backend des Plugins entfernt wurden. Wenn es feststellt, dass ein Ort aktualisiert wurde und dieser Ort derzeit im Modell vorhanden ist, dann ruft es Place::getDetails auf, um die Details zu aktualisieren. Stellt es fest, dass ein Ort entfernt wurde, wird er entsprechend aus dem Modell entfernt, wenn er derzeit vorhanden ist.
Beispiel
Das folgende Beispiel zeigt, wie das PlaceSearchModel verwendet werden kann, um nach Pizzarestaurants in der Nähe einer bestimmten Position zu suchen. Dem Modell werden searchTerm und searchArea zur Verfügung gestellt und update() wird verwendet, um eine Suchabfrage durchzuführen. Beachten Sie, dass das Modell die Suchergebnisse nicht schrittweise abruft, sondern einen einzigen Abruf durchführt, wenn update() ausgeführt wird. Die count wird auf die Anzahl der Suchergebnisse gesetzt, die während des Abrufs zurückgegeben werden.
import QtQuick import QtPositioning import QtLocation PlaceSearchModel { id: searchModel plugin: myPlugin searchTerm: "food" searchArea: QtPositioning.circle(startCoordinate, 5000 /* 5 km radius */); Component.onCompleted: update() }
Paging
Die PlaceSearchModel-API bietet eine begrenzte Unterstützung für das Paging. Die Funktionen nextPage() und previousPage() sowie die Eigenschaft limit können verwendet werden, um auf ausgelagerte Suchergebnisse zuzugreifen. Wenn die limit Eigenschaft gesetzt ist, enthält die Suchergebnisseite höchstens limit Einträge (vom Typ Ortsergebnis). Wenn das Backend zum Beispiel insgesamt 5 Suchergebnisse [a,b,c,d,e] enthält und angenommen, dass die erste Seite angezeigt wird und das Limit auf 3 gesetzt wurde, dann wird a,b,c zurückgegeben. Die nextPage() würde d,e zurückgeben. Die Eigenschaften nextPagesAvailable und previousPagesAvailable können verwendet werden, um nach weiteren Seiten zu suchen. Derzeit unterstützt die API nicht die Möglichkeit, die Gesamtzahl der verfügbaren Elemente aus dem Backed abzurufen. Beachten Sie, dass die Unterstützung für nextPage(), previousPage() und limit je nach plugin variieren kann.
Siehe auch CategoryModel und QPlaceManager.
Dokumentation der Eigenschaft
Diese Eigenschaft enthält eine Liste von Kategorien, die bei der Suche verwendet werden sollen. Die Suchergebnisse werden für Orte zurückgegeben, die mindestens einer der Kategorien entsprechen.
count : int |
Diese Eigenschaft enthält die Anzahl der Ergebnisse, die das Modell hat.
Beachten Sie, dass sie sich nicht auf die Gesamtzahl der im Backend verfügbaren Suchergebnisse bezieht. Die Gesamtzahl der Suchergebnisse wird derzeit von der API nicht unterstützt.
favoritesMatchParameters : VariantMap |
Diese Eigenschaft enthält eine Reihe von Parametern, die verwendet werden, um festzulegen, wie die Orte der Suchergebnisse den Favoriten in favoritesPlugin zugeordnet werden.
Standardmäßig ist die Parameter-Map leer und impliziert, dass das Favoriten-Plugin nach alternativen Bezeichnern abgleicht. Im Allgemeinen braucht ein Anwendungsentwickler diese Eigenschaft nicht zu setzen.
In Fällen, in denen das Favoriten-Plugin den Abgleich nach alternativen Bezeichnern nicht unterstützt, sollte die Plugin-Dokumentation konsultiert werden, um genau zu erfahren, welche Schlüssel-Wert-Parameter zu setzen sind.
favoritesPlugin : Plugin |
Diese Eigenschaft enthält die Plugin, die für die Suche nach Favoriten verwendet wird. Für alle Orte aus der Suche, die im favoritesPlugin mit Querverweisen oder Übereinstimmungen versehen werden können, wird die Eigenschaft favorite auf die entsprechende Place aus dem favoritesPlugin gesetzt.
Wenn das favoritesPlugin nicht gesetzt ist, wird die favorite Eigenschaft der Orte in den Ergebnissen immer Null sein.
Siehe auch Favorites.
incremental : bool |
Diese Eigenschaft steuert, wie sich das Paging auf PlaceSearchModel auswirkt. Bei true wird durch den Aufruf von previousPage oder nextPage das Modell nicht zurückgesetzt, sondern es werden neue Ergebnisse an das Modell angehängt. Die Voreinstellung ist false.
Diese Eigenschaft wurde in QtLocation 5.12 eingeführt.
limit : int |
Diese Eigenschaft enthält die Grenze für die Anzahl der Elemente, die zurückgegeben werden.
nextPagesAvailable : bool |
Diese Eigenschaft gibt an, ob eine oder mehrere zusätzliche Seiten mit Suchergebnissen verfügbar sind.
Siehe auch nextPage().
plugin : Plugin |
Diese Eigenschaft enthält die Plugin, die für die Durchführung der Suche verwendet wird.
previousPagesAvailable : bool |
Diese Eigenschaft gibt an, ob eine oder mehrere vorherige Seiten mit Suchergebnissen verfügbar sind.
Siehe auch previousPage().
recommendationId : string |
Diese Eigenschaft enthält die placeId, die verwendet wird, um Empfehlungen für ähnliche Orte zu finden.
relevanceHint : enumeration |
Diese Eigenschaft enthält einen Relevanz-Hinweis, der in der Suchanfrage verwendet wird. Der Hinweis wird dem Anbieter gegeben, um die Rangfolge der Ergebnisse zu unterstützen, aber nicht zu diktieren. Beispielsweise kann der Hinweis auf die Entfernung näher gelegenen Orten einen höheren Rang geben, was aber nicht unbedingt bedeutet, dass die Ergebnisse streng nach der Entfernung geordnet werden. Ein Anbieter kann den Hinweis gänzlich ignorieren.
SearchResultModel.UnspecifiedHint | Dem Anbieter wird kein Relevanzhinweis gegeben. |
SearchResultModel.DistanceHint | Die Entfernung des Ortes vom aktuellen Standort des Benutzers ist für den Benutzer wichtig. Dieser Hinweis ist nur sinnvoll, wenn ein kreisförmiger Suchbereich verwendet wird. |
SearchResultModel.LexicalPlaceNameHint | Die lexikalische Ordnung der Ortsnamen (in aufsteigender alphabetischer Reihenfolge) ist für den Nutzer von Bedeutung. Dieser Hinweis ist sinnvoll für Anbieter, die auf einem lokalen Datenspeicher basieren. |
searchArea : variant |
Diese Eigenschaft enthält den Suchbereich. Das vom Modell zurückgegebene Suchergebnis wird innerhalb des Suchbereichs liegen.
Wenn diese Eigenschaft auf geocircle gesetzt ist, kann die Eigenschaft radius nicht gesetzt werden. In diesem Fall wählt Plugin einen geeigneten Radius für die Suche.
Die Unterstützung für die Angabe eines Suchbereichs kann je nach der plugin Backend-Implementierung variieren. Einige unterstützen beispielsweise nur einen Suchmittelpunkt, während andere nur Georechtecke unterstützen.
searchTerm : string |
Diese Eigenschaft enthält den in der Abfrage verwendeten Suchbegriff. Der Suchbegriff ist eine Freiform-Textzeichenfolge.
status : enum |
Diese Eigenschaft enthält den Status des Modells. Sie kann einer der folgenden Werte sein:
PlaceSearchModel.Null | Es wurde keine Suchabfrage durchgeführt. Das Modell ist leer. |
PlaceSearchModel.bereit | Die Suchabfrage wurde abgeschlossen, und die Ergebnisse sind verfügbar. |
PlaceSearchModel.Laden | Es wird gerade eine Suchabfrage ausgeführt. |
PlaceSearchModel.Fehler | Bei der Ausführung der vorherigen Suchabfrage ist ein Fehler aufgetreten. |
visibilityScope : enum |
Diese Eigenschaft enthält den Sichtbarkeitsbereich der zu suchenden Orte. Nur Orte mit der angegebenen Sichtbarkeit werden in den Suchergebnissen wiedergegeben.
Der Sichtbarkeitsbereich kann einer der folgenden sein:
Place.UnspecifiedVisibility | Kein expliziter Sichtbarkeitsbereich angegeben, Orte mit beliebiger Sichtbarkeit können in den Suchergebnissen enthalten sein. |
Ort.GeräteSichtbarkeit | Nur Orte, die auf dem lokalen Gerät gespeichert sind, werden in den Suchergebnissen angezeigt. |
Place.PrivateVisibility | Nur Orte, die für den aktuellen Benutzer privat sind, werden in den Suchergebnissen angezeigt. |
Place.PublicVisibility | Nur Orte, die öffentlich sind, werden in den Suchergebnissen angezeigt. |
Dokumentation der Methode
void cancel() |
Bricht einen laufenden Suchvorgang sofort ab und setzt den Modellstatus auf PlaceSearchModel.Ready. Das Modell behält alle Suchergebnisse, die es vor dem Start des Vorgangs hatte.
Wenn ein Vorgang nicht im Gange ist, hat der Aufruf von cancel() keine Wirkung.
Gibt die Daten für ein bestimmtes role in der angegebenen Zeile index zurück.
string errorString() |
Diese schreibgeschützte Eigenschaft enthält die textuelle Darstellung des letzten Fehlers im Modell der Ortssuche. Wenn kein Fehler aufgetreten ist oder das Modell gelöscht wurde, wird eine leere Zeichenfolge zurückgegeben.
Eine leere Zeichenkette kann auch zurückgegeben werden, wenn ein Fehler aufgetreten ist, der keine zugehörige textuelle Darstellung hat.
void nextPage() |
Aktualisiert das Modell, um die nächste Seite der Suchergebnisse anzuzeigen. Wenn es keine nächste Seite gibt, führt diese Methode nichts aus.
void previousPage() |
Aktualisiert das Modell, um die vorherige Seite der Suchergebnisse anzuzeigen. Wenn es keine vorherige Seite gibt, tut diese Methode nichts.
void reset() |
Setzt das Modell zurück. Alle Suchergebnisse werden gelöscht, alle ausstehenden Anfragen werden abgebrochen und mögliche Fehler werden gelöscht. Der Modellstatus wird auf PlaceSearchModel.Null gesetzt.
void update() |
Aktualisiert das Modell auf der Grundlage der angegebenen Abfrageparameter. Das Modell wird mit einer Liste von Orten gefüllt, die den in den Eigenschaften des Typs angegebenen Suchparametern entsprechen. Die Suchkriterien werden durch die Einstellung von Eigenschaften wie searchTerm, categories, searchArea und limit festgelegt. Die Unterstützung für diese Eigenschaften kann je nach plugin variieren. update()
übergibt dann den Satz von Kriterien zur Verarbeitung an plugin.
Während der Aktualisierung des Modells wird status des Modells auf PlaceSearchModel.Loading
gesetzt. Bei erfolgreicher Aktualisierung des Modells wird status auf PlaceSearchModel.Ready
gesetzt, während bei erfolglosem Abschluss status auf PlaceSearchModel.Error
gesetzt und das Modell gelöscht wird.
PlaceSearchModel { id: model plugin: backendPlugin searchArea: QtPositioning.circle(QtPositioning.coordinate(10, 10)) ... } MouseArea { ... onClicked: { model.searchTerm = "pizza"; model.categories = null; //not searching by any category model.searchArea.center.latitude = -27.5; model.searchArea.center.longitude = 153; model.update(); } }
void updateWith(int proposedSearchIndex) |
Aktualisiert das Modell basierend auf dem ProposedSearchResult unter dem Index proposedSearchIndex. Das Modell wird mit einer Liste von Orten aufgefüllt, die der vorgeschlagenen Suche entsprechen. Der Modellstatus wird auf PlaceSearchModel.Loading gesetzt. Wenn das Modell erfolgreich aktualisiert wurde, wird der Status auf PlaceSearchModel.Ready gesetzt. Wenn ein Fehler auftritt, wird der Status auf PlaceSearchModel.Error gesetzt und das Modell gelöscht.
Wenn proposedSearchIndex nicht auf ein ProposedSearchResult verweist, tut diese Methode nichts.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.