Place QML Type
Der Typ Ort stellt einen Ort dar, der eine Position von Interesse ist. Mehr...
Import Statement: | import QtLocation 6.8 |
Since: | QtLocation 5.5 |
Eigenschaften
- attribution : string
- categories : list<Category>
- contactDetails : ContactDetails
- detailsFetched : bool
- editorialModel : EditorialModel
- extendedAttributes : ExtendedAttributes
- favorite : Place
- icon : Icon
- imageModel : ImageModel
- location : QtPositioning::Location
- name : string
- placeId : string
- plugin : Plugin
- primaryEmail : string
- primaryFax : string
- primaryPhone : string
- primaryWebsite : string
- ratings : Ratings
- reviewModel : ReviewModel
- status : enumeration
- supplier : Supplier
- visibility : enumeration
Methoden
- void copyFrom(Place original)
- string errorString()
- void getDetails()
- void initializeFavorite(Plugin destinationPlugin)
- void remove()
- void save()
Detaillierte Beschreibung
Der Typ Place stellt einen physischen Ort mit zusätzlichen Metadaten dar, die diesen Ort beschreiben. Im Gegensatz zu den Typen Location, Address und coordinate, die zur Beschreibung der Lage eines Ortes verwendet werden. Die grundlegenden Eigenschaften eines Ortes sind seine name und location.
Ortsobjekte werden in der Regel aus einem Suchmodell abgerufen und haben in der Regel nur ihre grundlegenden Eigenschaften eingestellt. Die Eigenschaft detailsFetched kann verwendet werden, um zu prüfen, ob weitere Eigenschaftswerte von Plugin abgerufen werden müssen. Dies kann durch den Aufruf der Methode getDetails() erfolgen. Der Fortschritt des Abrufvorgangs kann mit der Eigenschaft status überwacht werden, die auf Place.Fetching gesetzt wird, wenn die Details abgerufen werden.
Der Typ "Ort" hat viele Eigenschaften, die Informationen über den Ort enthalten. Einzelheiten darüber, wie der Ort kontaktiert werden kann, sind über die Eigenschaft contactDetails verfügbar. Es gibt auch praktische Eigenschaften zum Abrufen der primären phone, fax, email und website.
Jedem Ort sind null oder mehr categories zugeordnet. Kategorien werden in der Regel verwendet, wenn man nach einer bestimmten Art von Ort sucht, z. B. nach einem Restaurant oder Hotel. Einige Orte haben ein ratings Objekt, das einen Hinweis auf die Qualität des Ortes gibt.
Die Metadaten eines Ortes werden von einem supplier zur Verfügung gestellt, der verlangen kann, dass dem Benutzer eine attribution Nachricht angezeigt wird, wenn die Ortsdetails angezeigt werden.
Orte haben ein zugehöriges icon, das verwendet werden kann, um einen Ort auf einer Karte darzustellen oder um einen Delegierten in einer Ansicht zu dekorieren.
Orte können mit zusätzlichem Rich Content verknüpft sein. Zu den derzeit unterstützten Rich Content gehören redaktionelle Beschreibungen, Bewertungen und Bilder. Diese werden als eine Reihe von Modellen zum Abrufen der Inhalte dargestellt. Redaktionelle Beschreibungen des Ortes sind über die Eigenschaft editorialModel verfügbar. Bewertungen des Ortes sind über die Eigenschaft reviewModel verfügbar. Auf eine Bildergalerie des Ortes kann über die Eigenschaft imageModel zugegriffen werden.
Orte können zusätzliche Attribute haben, die nicht durch die formale API abgedeckt sind. Die Eigenschaft extendedAttributes ermöglicht den Zugriff auf diese. Die Art der verfügbaren erweiterten Attribute ist für jede Plugin spezifisch.
Ein Ort ist fast immer an eine plugin gebunden. Die Eigenschaft plugin muss gesetzt werden, bevor save(), remove() oder getDetails() aufgerufen werden können. Die Eigenschaften reviewModel, imageModel und editorialModel sind nur gültig, wenn die Eigenschaft plugin gesetzt ist.
Speichern eines Ortes
Wenn Plugin dies unterstützt, kann der Typ Place verwendet werden, um einen Ort zu speichern. Erstellen Sie zunächst einen neuen Ort und legen Sie seine Eigenschaften fest:
Place { id: myPlace plugin: myPlugin name: "Brisbane Technology Park" location: Location { address: Address { street: "53 Brandl Street" city: "Eight Mile Plains" postalCode: "4113" country: "Australia" } coordinate { latitude: -27.579646 longitude: 153.100308 } } visibility: Place.PrivateVisibility }
Rufen Sie dann die Methode save() auf:
myPlace.save();
Die Eigenschaft status ändert sich zu Place.Saving und dann zu Place.Ready, wenn das Speichern erfolgreich war, oder zu Place.Error, wenn ein Fehler auftritt.
Wenn die Eigenschaft placeId gesetzt ist, wird das Backend einen bestehenden Ort aktualisieren, andernfalls wird ein neuer Ort erstellt. Bei Erfolg wird die Eigenschaft placeId mit dem Bezeichner des neu gespeicherten Ortes aktualisiert.
Vorbehalte
Die Places API ist derzeit nur für das Speichern von core Details ausgelegt. Das Speichern von umfangreichen Inhalten wie Bildern und Bewertungen oder Details wie Anbieter und Bewertung ist kein unterstützter Anwendungsfall. Normalerweise ignoriert ein Manager diese Felder beim Speichern und kann eine Warnmeldung ausgeben, wenn sie ausgefüllt sind.
Die Places API unterstützt nur das Speichern der folgenden Kerndetails:
- Name
- Ortskennung
- Standort
- Kontaktdetails
- Symbol
- Kategorien (tagähnliche Namen zur Beschreibung eines Ortes)
- Sichtbarkeitsbereich
Es ist möglich, dass Anbieter nur eine Teilmenge davon unterstützen. Weitere Einzelheiten finden Sie in der Plugin-Dokumentation.
Das Speichern von Eigenschaften wie die Bewertung, erweiterte Attribute, Bilder, Bewertungen, Leitartikel und Anbieter wird von der Places API ausdrücklich nicht unterstützt.
Speichern zwischen Plugins
Beim Speichern von Orten zwischen Plugins gibt es ein paar Dinge zu beachten. Einige Felder eines Ortes, wie z.B. die ID, Kategorien und Icons, sind Plugin-spezifische Entitäten. Zum Beispiel können die Kategorien in einem Manager nicht in einem anderen erkannt werden. Daher ist es nicht möglich, einen Ort direkt von einem Plugin in einem anderen zu speichern.
Im Allgemeinen wird empfohlen, das Speichern über Plugins hinweg wie das Speichern von favorites zu behandeln, wie im Abschnitt "Favoriten" erläutert. Es gibt jedoch auch einen anderen Ansatz, der darin besteht, einen neuen Ort zu erstellen, sein (Ziel-)Plugin festzulegen und dann die Methode copyFrom() zu verwenden, um die Details des ursprünglichen Ortes zu kopieren. Bei der Verwendung von copyFrom() werden nur die Daten kopiert, die vom Ziel-Plugin unterstützt werden; Plugin-spezifische Daten, wie z. B. die Ortsbezeichnung, werden nicht übernommen. Sobald der Kopiervorgang abgeschlossen ist, befindet sich der Ort in einem geeigneten Zustand, um gespeichert zu werden.
Der folgende Ausschnitt zeigt ein Beispiel für das Speichern eines Ortes in einem anderen Plugin unter Verwendung der Methode copyFrom:
var place = Qt.createQmlObject('import QtLocation; Place { }', parent); place.plugin = destinationPlugin; place.copyFrom(originalPlace); place.save();
Entfernen eines Ortes
Um einen Ort zu entfernen, stellen Sie sicher, dass ein Place-Objekt mit einer gültigen placeId -Eigenschaft existiert und rufen Sie dessen remove()-Methode auf. Die Eigenschaft status ändert sich in Place.Removing und dann in Place.Ready, wenn das Speichern erfolgreich war, oder in Place.Error, wenn ein Fehler auftritt.
Favoriten
Die Places API unterstützt das Konzept der Favoriten. Favoriten werden in der Regel durch zwei Plugins implementiert, wobei das erste Plugin typischerweise eine Nur-Lese-Quelle von Orten ist (Ursprungs-Plugin) und ein zweites Lese-/Schreib-Plugin (Ziel-Plugin) verwendet wird, um Orte vom Ursprung als Favoriten zu speichern.
Jeder Ort hat eine Favoriten-Eigenschaft, die den entsprechenden Ort aus dem Ziel-Plugin enthalten soll (der Ort selbst stammt aus dem Ursprungs-Plugin). Da sowohl der ursprüngliche Ort als auch die Favoriten-Instanzen verfügbar sind, kann der Entwickler wählen, welche Eigenschaften dem Benutzer angezeigt werden sollen. Zum Beispiel kann der Favorit einen geänderten Namen haben, der anstelle des ursprünglichen Namens angezeigt werden soll.
Text { text: place.favorite ? place.favorite.name : place.name }
Im Folgenden wird gezeigt, wie eine neue Favoriteninstanz gespeichert wird. Es erfolgt ein Aufruf zum Erstellen/Initialisieren der Favoriteninstanz und anschließend wird die Instanz gespeichert.
place.initializeFavorite(destinationPlugin); //if necessary customizations to the favorite can be made here. //... place.favorite.save();
Im Folgenden wird das Entfernen von Favoriten demonstriert:
place.favorite.remove(); ... //check successful removal of the favorite by monitoring its status. //once that is done we can assign null to the favorite place.favorite = null;
Die PlaceSearchModel hat eine favoritesPlugin-Eigenschaft. Wenn die Eigenschaft gesetzt ist, werden alle Orte, die bei einer Suche gefunden werden, mit dem favoritesPlugin abgeglichen, um zu sehen, ob es einen entsprechenden Favoritenort gibt. Wenn ja, wird die favorisierte Eigenschaft des Ortes gesetzt, andernfalls bleibt die favorisierte Eigenschaft null.
Siehe auch PlaceSearchModel.
Eigenschaft Dokumentation
attribution : string |
Diese Eigenschaft enthält eine Rich-Text-Zeichenkette für den Ort. Einige Anbieter können verlangen, dass die Attribution dem Benutzer angezeigt wird, wenn ein Ort angezeigt wird. Der Inhalt dieser Eigenschaft sollte dem Benutzer angezeigt werden, wenn sie nicht leer ist.
Diese Eigenschaft enthält die Liste der Kategorien, denen der Ort angehört. Die Kategorien, die einem Ort zugewiesen werden können, sind spezifisch für jede plugin.
contactDetails : ContactDetails |
Diese Eigenschaft enthält die Kontaktinformationen für diesen Ort, z. B. eine Telefonnummer oder eine Website-URL. Diese Eigenschaft ist eine Karte der contactDetail Objekte.
detailsFetched : bool |
Diese Eigenschaft zeigt an, ob die Details des Ortes abgerufen wurden. Wenn diese Eigenschaft false ist, wurden die Ortsangaben noch nicht abgeholt. Der Abruf kann durch Aufrufen der Methode getDetails() erfolgen.
Siehe auch getDetails().
editorialModel : EditorialModel |
Diese Eigenschaft enthält ein Modell, das verwendet werden kann, um redaktionelle Beschreibungen des Ortes abzurufen.
extendedAttributes : ExtendedAttributes |
Diese Eigenschaft enthält die erweiterten Attribute eines Ortes. Erweiterte Attribute sind zusätzliche Informationen über einen Ort, die nicht von den Eigenschaften des Ortes abgedeckt werden.
favorite : Place |
Diese Eigenschaft enthält die bevorzugte Instanz eines Ortes.
icon : Icon |
Diese Eigenschaft enthält ein grafisches Symbol, das zur Darstellung des Ortes verwendet werden kann.
imageModel : ImageModel |
Diese Eigenschaft enthält ein Modell, das verwendet werden kann, um Bilder des Ortes abzurufen.
location : QtPositioning::Location |
Diese Eigenschaft enthält den Standort des Ortes, der zum Abrufen der Koordinaten, der Adresse und des Begrenzungsrahmens verwendet werden kann.
name : string |
Diese Eigenschaft enthält den Namen des Ortes, der zur Darstellung des Ortes verwendet werden kann.
placeId : string |
Diese Eigenschaft enthält den eindeutigen Bezeichner des Ortes. Der Ortsbezeichner ist nur für die Plugin, die ihn erzeugt hat, von Bedeutung und kann nicht zwischen Plugins übertragen werden. Es ist nicht garantiert, dass die Ortskennung universell eindeutig ist, sondern nur innerhalb der Plugin, die sie erzeugt hat.
Wenn nur der Ortsbezeichner bekannt ist, können alle anderen Ortsdaten von der Plugin abgerufen werden.
place.plugin = myPlugin; place.placeId = "known-place-id"; place.getDetails();
plugin : Plugin |
Diese Eigenschaft enthält die Plugin, die diesen Ort zur Verfügung gestellt hat und mit der weitere Informationen über den Dienst abgerufen werden können.
primaryEmail : string |
Diese Eigenschaft enthält die primäre E-Mail-Adresse des Ortes. Wenn für diesen Ort keine "E-Mail"-Kontaktdetails definiert sind, ist diese Eigenschaft ein leerer String. Sie ist gleichbedeutend mit
var primaryEmail; if (place.contactDetails["email"].length > 0) primaryEmail = place.contactDetails["email"][0].value;
primaryFax : string |
Diese Eigenschaft enthält die primäre Faxnummer des Ortes. Wenn für diesen Ort keine "Fax"-Kontaktangabe definiert ist, ist diese Eigenschaft eine leere Zeichenfolge. Sie ist gleichbedeutend mit
var primaryFax; if (place.contactDetails["fax"].length > 0) primaryFax = place.contactDetails["fax"][0].value;
primaryPhone : string |
Diese Eigenschaft enthält die primäre Telefonnummer des Ortes. Wenn für diesen Ort keine "Telefon"-Kontaktdetails definiert sind, ist diese Eigenschaft eine leere Zeichenfolge. Sie ist äquivalent zu:
var primaryPhone; if (place.contactDetails["phone"].length > 0) primaryPhone = place.contactDetails["phone"][0].value;
primaryWebsite : string |
Diese Eigenschaft enthält die primäre Website-Url des Ortes. Wenn für diesen Ort keine "Website"-Kontaktangaben definiert sind, ist diese Eigenschaft eine leere Zeichenfolge. Sie ist gleichbedeutend mit
var primaryWebsite; if (place.contactDetails["website"].length > 0) primaryWebsite = place.contactDetails["website"][0].value;
ratings : Ratings |
Diese Eigenschaft enthält die Bewertungen des Ortes. Die Bewertungen geben einen Hinweis auf die Qualität eines Ortes.
reviewModel : ReviewModel |
Diese Eigenschaft enthält ein Modell, das verwendet werden kann, um Bewertungen über den Ort abzurufen.
status : enumeration |
Diese Eigenschaft enthält den Status des Ortes. Er kann einer der folgenden sein:
Ort.Bereit | Bei der letzten Operation ist kein Fehler aufgetreten, weitere Operationen können an dem Ort durchgeführt werden. |
Ort.Speichern | Der Ort wird gerade gespeichert, bis zum Abschluss kann keine weitere Operation durchgeführt werden. |
Ort.Abholen | Die Ortsangaben werden gerade abgeholt, bis zum Abschluss können keine weiteren Vorgänge durchgeführt werden. |
Ort.Entfernen | Der Ort wird gerade entfernt, bis zum Abschluss können keine weiteren Vorgänge durchgeführt werden. |
Ort.Fehler | Bei der letzten Operation ist ein Fehler aufgetreten, weitere Operationen können noch an dem Ort durchgeführt werden. |
Der Status eines Ortes kann überprüft werden, indem man die Eigenschaft status mit einer Handler-Funktion verbindet und dann die Handler-Funktion die Statusänderung verarbeiten lässt.
place.statusChanged.connect(statusChangedHandler); ... function statusChangedHandler() { if (statusChangedHandler.prevStatus === Place.Saving) { switch (place.status) { case Place.Ready: console.log('Save successful'); break; case Place.Error: console.log('Save failed'); break; default: break; } } statusChangedHandler.prevStatus = place.status; }
supplier : Supplier |
Diese Eigenschaft enthält den Lieferanten der Ortsdaten. Der Lieferant ist normalerweise ein Unternehmen oder eine Organisation, die die Daten über den Ort gesammelt hat.
Sichtbarkeit: enumeration |
Diese Eigenschaft bestimmt die Sichtbarkeit des Ortes. Sie kann eine der folgenden sein:
Place.UnspecifiedVisibility | Die Sichtbarkeit des Ortes ist nicht spezifiziert, es wird die Standardsichtbarkeit von Plugin verwendet. |
Ort.GeräteSichtbarkeit | Der Ort ist auf das aktuelle Gerät beschränkt. Der Ort wird nicht außerhalb des Geräts übertragen. |
Place.PrivateVisibility | Der Ort ist für den aktuellen Benutzer privat. Der Ort kann an einen Online-Dienst übertragen werden, ist aber immer nur für den aktuellen Benutzer sichtbar. |
Place.PublicVisibility | Der Ort ist öffentlich. |
Beachten Sie, dass die Sichtbarkeit keinen Einfluss darauf hat, wie der Ort in der Benutzeroberfläche einer Anwendung auf dem Gerät angezeigt wird. Stattdessen definiert sie die Semantik der gemeinsamen Nutzung des Ortes.
Methode Dokumentation
void copyFrom(Place original) |
Kopiert Daten aus einem Ort original in diesen Ort. Es werden nur Daten kopiert, die vom Plugin dieses Ortes unterstützt werden, und Plugin-spezifische Daten, wie z. B. die Ortskennung, werden nicht kopiert.
string errorString() |
Gibt eine Stringbeschreibung des Fehlers der letzten Operation zurück. Wenn der letzte Vorgang erfolgreich abgeschlossen wurde, ist die Zeichenkette leer.
void getDetails() |
Diese Methode beginnt mit dem Abruf von Ortsangaben.
Die Eigenschaft status ändert sich zu Place.Fetching, während der Abruf läuft. Bei Erfolg werden die Eigenschaften des Objekts aktualisiert, status wird auf Place.Ready gesetzt und detailsFetched wird auf true gesetzt. Im Fehlerfall wird status auf Place.Error gesetzt. Die Methode errorString() kann verwendet werden, um die Details des Fehlers zu erfahren.
void initializeFavorite(Plugin destinationPlugin) |
Erzeugt eine Favoriteninstanz für den Ort, die im Ziel-Plugin destinationPlugin gespeichert werden soll. Diese Methode ist wirkungslos, wenn die Favoriteneigenschaft nicht null
lautet.
void remove() |
Diese Methode führt einen Löschvorgang für den Ort durch.
Die Eigenschaft status ändert sich in Place.Removing, während der Speichervorgang ausgeführt wird. Bei Erfolg wird status auf Place.Ready gesetzt. Im Fehlerfall wird status auf Place.Error gesetzt. Die Methode errorString() kann verwendet werden, um die Details des Fehlers zu erfahren.
void save() |
Diese Methode führt einen Speichervorgang für den Ort durch.
Die Eigenschaft status ändert sich zu Place.Saving, während der Speichervorgang läuft. Bei Erfolg wird die Eigenschaft status auf Place.Ready gesetzt. Bei einem Fehler wird status auf Place.Error gesetzt. Die Methode errorString() kann verwendet werden, um die Details des Fehlers zu erfahren.
Wenn die Eigenschaft placeId zuvor leer war, wird ihr bei einem erfolgreichen Speichervorgang automatisch ein gültiger Wert zugewiesen.
Beachten Sie, dass PlaceSearchModel Place::getDetails an jeder Stelle aufruft, an der es eine Aktualisierung feststellt. Dies hat zur Folge, dass immer dann, wenn ein Ort von PlaceSearchModel erfolgreich gespeichert wird, ein Abruf der Ortsdetails folgt, was zu einer Folge von Zustandsänderungen Saving
, Ready
, Fetching
, Ready
führt.
© 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.