QPlaceManager Class

Die Klasse QPlaceManager stellt die Schnittstelle zur Verfügung, die es Clients ermöglicht, auf Orte zuzugreifen, die in einem bestimmten Backend gespeichert sind. Mehr...

Header: #include <QPlaceManager>
qmake: QT += location
Inherits: QObject

Öffentliche Funktionen

virtual ~QPlaceManager()
QPlaceCategory category(const QString &categoryId) const
QList<QPlaceCategory> childCategories(const QString &parentId = QString()) const
QStringList childCategoryIds(const QString &parentId = QString()) const
QPlace compatiblePlace(const QPlace &original) const
QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &request) const
QPlaceDetailsReply *getPlaceDetails(const QString &placeId) const
QPlaceReply *initializeCategories()
QList<QLocale> locales() const
QString managerName() const
int managerVersion() const
QPlaceMatchReply *matchingPlaces(const QPlaceMatchRequest &request) const
QString parentCategoryId(const QString &categoryId) const
QPlaceIdReply *removeCategory(const QString &categoryId)
QPlaceIdReply *removePlace(const QString &placeId)
QPlaceIdReply *saveCategory(const QPlaceCategory &category, const QString &parentId = QString())
QPlaceIdReply *savePlace(const QPlace &place)
QPlaceSearchReply *search(const QPlaceSearchRequest &request) const
QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &request) const
void setLocale(const QLocale &locale)
void setLocales(const QList<QLocale> &locales)

Signale

void categoryAdded(const QPlaceCategory &category, const QString &parentId)
void categoryRemoved(const QString &categoryId, const QString &parentId)
void categoryUpdated(const QPlaceCategory &category, const QString &parentId)
void dataChanged()
void errorOccurred(QPlaceReply *reply, QPlaceReply::Error error, const QString &errorString = QString())
void finished(QPlaceReply *reply)
void placeAdded(const QString &placeId)
void placeRemoved(const QString &placeId)
void placeUpdated(const QString &placeId)

Detaillierte Beschreibung

Die folgende Tabelle gibt einen Überblick über die vom QPlaceManager bereitgestellten Funktionen

FunktionsweiseBeschreibung
Suche nach OrtenMit Hilfe von Parametern wie einem Suchbegriff und einem Suchgebiet können dem Benutzer relevante Orte angezeigt werden.
KategorienOrte können in verschiedene Kategorien eingeteilt werden. Der Manager unterstützt den Zugriff auf diese Kategorien.
Vorschläge für SuchbegriffeAnhand eines teilweise vollständigen Suchbegriffs kann eine Liste möglicher Suchbegriffe ausgegeben werden.
EmpfehlungenAusgehend von einem bestehenden Ort kann dem Nutzer eine Reihe von ähnlichen empfohlenen Orten vorgeschlagen werden.
Reichhaltiger InhaltUmfangreiche Inhalte wie Bilder, Bewertungen usw. können seitenweise abgerufen werden.
Verwaltung von Orten und KategorienOrte und Kategorien können gespeichert und entfernt werden. Es ist möglich, dass in diesem Fall Benachrichtigungen ausgegeben werden.
LokalisierungEs können verschiedene Gebietsschemata angegeben werden, um Ortsdaten in verschiedenen Sprachen auszugeben.

Beziehen einer QPlaceManager-Instanz

Die Erstellung eines QPlaceManagers wird durch QGeoServiceProvider erleichtert. Siehe Initialisierung eines Managers für ein Beispiel zur Erstellung eines Managers.

Asynchrone Schnittstelle

Die Klasse QPlaceManager stellt eine Abstraktion des Datenspeichers dar, der Ortsinformationen enthält. Die vom QPlaceManager bereitgestellten Funktionen sind hauptsächlich asynchron und folgen einem Anfrage-Antwort-Modell. Typischerweise wird eine Anfrage an den Manager gestellt, die aus einer Reihe von Parametern besteht, und es wird ein Antwortobjekt erstellt. Das Antwortobjekt verfügt über ein Signal, um mitzuteilen, wann die Anfrage abgeschlossen ist. Sobald die Anfrage abgeschlossen ist, enthält die Antwort die Ergebnisse der Anfrage sowie gegebenenfalls aufgetretene Fehler.

Eine asynchrone Anfrage wird im Allgemeinen wie folgt behandelt:

//1) Stellen Sie eine entsprechende AnfrageQPlaceSearchRequest searchRequest; searchRequest.setSearchTerm("Eiscreme"); searchRequest.setSearchArea(QGeoCircle(QGeoCoordinate(12.34, 56.78)));//2) Verwenden Sie den Manager, um eine Anfrage zu initiieren und ein Antwortobjekt abzurufenQPlaceSearchReply * searchReply =  manager->search(searchRequest);//3) Das Antwortobjekt mit einem Slot verbinden, der bei Abschluss der Operation aufgerufen wirdconnect(searchReply, &QPlaceSearchReply::finished, this, &RequestHandler::processSearchReply); ... ...//4) Der Slot soll die Ergebnisse der Operation angemessen verarbeitenvoid processSearchReply() { if (searchReply->error() == QPlaceReply::NoError) { for(const QPlaceSearchResult &result:  searchReply->results()) { if (result.type() == QPlaceSearchResult::PlaceResult)                qDebug() << "Title:" << result.title();
        } }//5) Verwerfen Sie das verlassene Objekt, wenn Sie fertig sind. searchReply->deleteLater(); searchReply = nullptr; }

Siehe Allgemeine Operationen für eine Liste von Beispielen, die zeigen, wie QPlaceManger verwendet wird.

Initialisierung der Kategorie

Irgendwann während des Starts einer Anwendung sollte die Funktion initializeCategories() aufgerufen werden, um die Kategorien einzurichten. Die Initialisierung der Kategorien ermöglicht die Verwendung der folgenden Funktionen:

Wenn die Kategorien aktualisiert oder neu geladen werden müssen, kann die Funktion initializeCategories() erneut aufgerufen werden.

Dokumentation der Mitgliedsfunktionen

[virtual noexcept] QPlaceManager::~QPlaceManager()

Zerstört den Manager. Dieser Destruktor wird intern von QGeoServiceProvider verwendet und sollte nie im Anwendungscode aufgerufen werden müssen.

QPlaceCategory QPlaceManager::category(const QString &categoryId) const

Gibt die Kategorie zurück, die der angegebenen categoryId entspricht.

[signal] void QPlaceManager::categoryAdded(const QPlaceCategory &category, const QString &parentId)

Dieses Signal wird ausgegeben, wenn ein category zum Datenspeicher des Managers hinzugefügt wurde. Das Elternteil des category wird durch parentId angegeben.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

Siehe auch dataChanged().

[signal] void QPlaceManager::categoryRemoved(const QString &categoryId, const QString &parentId)

Dieses Signal wird ausgegeben, wenn die Kategorie, die categoryId entspricht, aus dem Datenspeicher des Managers entfernt worden ist. Das Elternteil der entfernten Kategorie wird durch parentId angegeben.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

Siehe auch dataChanged().

[signal] void QPlaceManager::categoryUpdated(const QPlaceCategory &category, const QString &parentId)

Dieses Signal wird ausgegeben, wenn eine category im Datenspeicher des Managers geändert wurde. Das Elternteil der geänderten Kategorie wird durch parentId angegeben.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

Siehe auch dataChanged().

QList<QPlaceCategory> QPlaceManager::childCategories(const QString &parentId = QString()) const

Gibt eine Liste der Kategorien zurück, die Kinder der Kategorie sind, die parentId entspricht. Ist parentId leer, werden alle Kategorien der obersten Ebene zurückgegeben.

QStringList QPlaceManager::childCategoryIds(const QString &parentId = QString()) const

Gibt die Bezeichner der untergeordneten Kategorien der Kategorie zurück, die parentId entspricht. Wenn parentId leer ist, werden alle Bezeichner der übergeordneten Kategorien zurückgegeben.

QPlace QPlaceManager::compatiblePlace(const QPlace &original) const

Gibt eine gekürzte oder geänderte Version des Ortes original zurück, die sich für die Speicherung in diesem Manager eignet.

In der geänderten Version sind nur Ortsangaben enthalten, die von diesem Manager unterstützt werden. Managerspezifische Daten, wie z. B. die Ortskennung, werden nicht von original übernommen.

[signal] void QPlaceManager::dataChanged()

Dieses Signal wird vom Manager ausgesendet, wenn es umfangreiche Änderungen an seinem zugrunde liegenden Datenspeicher gibt und der Manager diese Änderungen als so radikal ansieht, dass die Clients alle Daten neu laden müssen.

Wenn das Signal ausgesendet wird, werden keine anderen Signale für die damit verbundenen Änderungen ausgesendet.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

[signal] void QPlaceManager::errorOccurred(QPlaceReply *reply, QPlaceReply::Error error, const QString &errorString = QString())

Dieses Signal wird ausgegeben, wenn bei der Verarbeitung von reply ein Fehler aufgetreten ist. Wahrscheinlich wird das Signal QPlaceManager::finished() folgen.

Der Fehler wird durch den Fehlercode error beschrieben. Wenn errorString nicht leer ist, enthält es eine textuelle Beschreibung des Fehlers, die für Entwickler und nicht für Endbenutzer bestimmt ist.

Dieses Signal und QPlaceReply::errorOccurred() werden zur gleichen Zeit ausgegeben.

Hinweis: Löschen Sie nicht das Objekt reply in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen deleteLater().

[signal] void QPlaceManager::finished(QPlaceReply *reply)

Dieses Signal wird ausgegeben, wenn reply die Verarbeitung abgeschlossen hat.

Wenn reply->error() gleich QPlaceReply::NoError ist, wurde die Verarbeitung erfolgreich abgeschlossen.

Dieses Signal und QPlaceReply::finished() werden zur gleichen Zeit ausgegeben.

Hinweis: Löschen Sie nicht das Objekt reply in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen deleteLater().

QPlaceContentReply *QPlaceManager::getPlaceContent(const QPlaceContentRequest &request) const

Ruft Inhalte für einen Ort entsprechend den in request angegebenen Parametern ab.

Ein Beispiel für die Verwendung finden Sie unter Abrufen von Rich Content.

QPlaceDetailsReply *QPlaceManager::getPlaceDetails(const QString &placeId) const

Ruft die Details eines Ortes ab, der dem angegebenen placeId entspricht.

Siehe Abrufen von Ortsdetails für ein Anwendungsbeispiel.

QPlaceReply *QPlaceManager::initializeCategories()

Initialisiert die Kategorien des Managers.

Siehe Verwendung von Kategorien für ein Anwendungsbeispiel.

QList<QLocale> QPlaceManager::locales() const

Gibt eine Liste der bevorzugten Gebietsschemata zurück. Die Gebietsschemata dienen dem Manager als Hinweis darauf, in welcher Sprache Orts- und Kategoriedetails zurückgegeben werden sollen.

Kann das erste angegebene Gebietsschema nicht berücksichtigt werden, greift der Manager auf das nächste zurück und so weiter. Einige Manager-Backends unterstützen möglicherweise keine fest definierten Gebietsschemata. Ein willkürliches Beispiel ist, dass einige Orte in Frankreich französische und englische Lokalisierungen haben könnten, während in bestimmten Gebieten in Amerika nur die englische Lokalisierung verfügbar ist. In diesem Beispiel ist die Menge der unterstützten Gebietsschemata kontextabhängig vom Suchort.

Wenn der Manager keine der bevorzugten Gebietsschemata unterstützen kann, greift er auf eine unterstützte Sprache zurück, die Backend-spezifisch ist.

Die Unterstützung für Gebietsschemata kann von Anbieter zu Anbieter variieren. Bei Anbietern, die sie unterstützen, wird standardmäßig das globale Standardgebietsschema als einziges Gebietsschema des Managers festgelegt.

Bei Managern, die keine Gebietsschemata unterstützen, ist die Gebietsschema-Liste immer leer.

Siehe auch setLocales().

QString QPlaceManager::managerName() const

Gibt den Namen des Managers zurück

int QPlaceManager::managerVersion() const

Gibt die Version des Managers zurück.

QPlaceMatchReply *QPlaceManager::matchingPlaces(const QPlaceMatchRequest &request) const

Gibt eine Antwort zurück, die eine Liste von Orten enthält, die den in request angegebenen Orten entsprechen/übereinstimmen. Die in der Anfrage angegebenen Orte stammen von einem anderen Verwalter.

QString QPlaceManager::parentCategoryId(const QString &categoryId) const

Gibt die Kennung der übergeordneten Kategorie zurück, die der Kategorie categoryId entspricht.

[signal] void QPlaceManager::placeAdded(const QString &placeId)

Dieses Signal wird ausgegeben, wenn dem Datenspeicher der Manager-Engine ein Ort hinzugefügt wurde. Der bestimmte hinzugefügte Ort wird durch placeId angegeben.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

Siehe auch dataChanged().

[signal] void QPlaceManager::placeRemoved(const QString &placeId)

Dieses Signal wird ausgegeben, wenn ein Ort aus dem Datenspeicher des Managers entfernt wurde. Der bestimmte Ort, der entfernt wurde, wird durch placeId angegeben.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

Siehe auch dataChanged().

[signal] void QPlaceManager::placeUpdated(const QString &placeId)

Dieses Signal wird ausgegeben, wenn eine Stelle im Datenspeicher des Managers geändert wurde. Der bestimmte geänderte Ort wird durch placeId angegeben.

Dieses Signal wird nur von Managern ausgegeben, die das QPlaceManager::NotificationsFeature unterstützen.

Siehe auch dataChanged().

QPlaceIdReply *QPlaceManager::removeCategory(const QString &categoryId)

Entfernt die Kategorie, die categoryId entspricht, aus dem Manager.

Siehe Entfernen einer Kategorie für ein Anwendungsbeispiel.

QPlaceIdReply *QPlaceManager::removePlace(const QString &placeId)

Entfernt den Ort, der placeId entspricht, aus dem Manager.

Siehe Entfernen eines Ortes cpp für ein Beispiel zur Verwendung.

QPlaceIdReply *QPlaceManager::saveCategory(const QPlaceCategory &category, const QString &parentId = QString())

Speichert eine category, die eine Unterkategorie der durch parentId angegebenen Kategorie ist. Ein leeres parentId bedeutet, dass category als übergeordnete Kategorie gespeichert wird.

Siehe Speichern einer Kategorie für ein Anwendungsbeispiel.

QPlaceIdReply *QPlaceManager::savePlace(const QPlace &place)

Speichert eine angegebene place.

Siehe Speichern eines Ortes cpp für ein Beispiel zur Verwendung.

Sucht nach Orten entsprechend den in request angegebenen Parametern.

Siehe Discovery/Search für ein Beispiel zur Verwendung.

QPlaceSearchSuggestionReply *QPlaceManager::searchSuggestions(const QPlaceSearchRequest &request) const

Fordert eine Reihe von Vorschlägen für Suchbegriffe entsprechend den in request angegebenen Parametern an. Die request kann den unvollständigen Suchbegriff zusammen mit anderen Daten wie einem Suchbereich enthalten, um die relevanten Ergebnisse einzugrenzen.

Siehe Suchvorschläge für ein Beispiel zur Verwendung.

void QPlaceManager::setLocale(const QLocale &locale)

Convenience-Funktion, die die Liste der bevorzugten Gebietsschemata des Managers auf eine einzige locale setzt.

void QPlaceManager::setLocales(const QList<QLocale> &locales)

Legen Sie die Liste der bevorzugten locales fest.

Siehe auch locales().

© 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.