QPlaceManager Class
Die Klasse „QPlaceManager“ stellt die Schnittstelle bereit, über die Clients auf Orte zugreifen können, 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) |
Ausführliche Beschreibung
Die folgende Tabelle gibt einen Überblick über die vom QPlaceManager bereitgestellten Funktionen
| Funktionalität | Beschreibung |
|---|---|
| Suche nach Orten | Anhand einer Reihe von Parametern wie Suchbegriff und Suchgebiet können dem Benutzer relevante Orte angezeigt werden. |
| Kategorien | Orte können verschiedenen Kategorien zugeordnet werden. Der Manager unterstützt den Zugriff auf diese Kategorien. |
| Vorschläge für Suchbegriffe | Bei Eingabe eines teilweise vervollständigten Suchbegriffs kann eine Liste möglicher Suchbegriffe angezeigt werden. |
| Empfehlungen | Für einen vorhandenen Ort kann dem Nutzer eine Reihe ähnlicher Orte empfohlen werden. |
| Umfangreiche Inhalte | Umfangreiche Inhalte wie Bilder, Bewertungen usw. können seitenweise abgerufen werden. |
| Verwaltung von Orten oder Kategorien | Orte und Kategorien können gespeichert und gelöscht werden. In diesem Fall können Benachrichtigungen versendet werden. |
| Lokalisierung | Es können verschiedene Ländereinstellungen festgelegt werden, um Ortsdaten in verschiedenen Sprachen anzuzeigen. |
Abrufen einer QPlaceManager-Instanz
Die Erstellung eines `QPlaceManager` wird durch die Methode ` QGeoServiceProvider` erleichtert. Ein Beispiel für die Erstellung eines Managers finden Sie unter „Initialisierung eines Managers “.
Asynchrone Schnittstelle
Die Klasse `QPlaceManager` stellt eine Abstraktion des Datenspeichers dar, der Ortsinformationen enthält. Die vom `QPlaceManager` bereitgestellten Funktionen sind überwiegend asynchron und folgen einem Anfrage-Antwort-Modell. In der Regel wird eine Anfrage an den Manager gesendet, die aus verschiedenen Parametern besteht, woraufhin ein Antwortobjekt erstellt wird. Das Antwortobjekt verfügt über ein Signal, das meldet, wenn die Anfrage abgeschlossen ist; nach Abschluss enthält die Antwort die Ergebnisse der Anfrage sowie gegebenenfalls aufgetretene Fehler.
Eine asynchrone Anfrage wird im Allgemeinen wie folgt abgewickelt:
//1) Eine entsprechende Anfrage erstellen
QPlaceSearchRequest searchRequest;
searchRequest.setSearchTerm("Eiscreme");
searchRequest.setSearchArea(QGeoCircle(QGeoCoordinate(12,34 ; 56,78)));
//2) Mit dem Manager eine Anfrage initiieren und ein Antwortobjekt abrufen
QPlaceSearchReply* searchReply = manager->search(searchRequest);
//3) Das Antwortobjekt mit einem Slot verbinden, der nach Abschluss der Operation aufgerufen wird
connect(searchReply, &QPlaceSearchReply::finished,
this, &RequestHandler::processSearchReply);
...
...
//4) Den Slot die Ergebnisse des Vorgangs entsprechend verarbeiten lassen
void processSearchReply() {
if (searchReply->error()== QPlaceReply::NoError) {
for (const QPlaceSearchResult&result: searchReply->results()) {
if (result.type()== QPlaceSearchResult::PlaceResult)
qDebug() << "Title:" << result.title();
}
}
//5) Das „rely“-Objekt nach Abschluss verwerfen.
searchReply->deleteLater();
searchReply = nullptr;
}Eine Liste mit Beispielen zur Verwendung des QPlaceManager finden Sie unter „Häufige Operationen “.
Kategorie „Initialisierung“
Irgendwann während des Starts einer Anwendung sollte die Funktion ` initializeCategories()` aufgerufen werden, um die Kategorien einzurichten. Durch die Initialisierung der Kategorien werden die folgenden Funktionen verfügbar:
- QPlaceManager::childCategories()
- QPlaceManager::category()
- QPlaceManager::parentCategoryId()
- QPlaceManager::childCategoryIds();
Wenn die Kategorien aktualisiert oder neu geladen werden müssen, kann die Funktion „ initializeCategories()“ erneut aufgerufen werden.
Dokumentation zu den Member-Funktionen
[virtual noexcept] QPlaceManager::~QPlaceManager()
Löscht den Manager. Dieser Destruktor wird intern von QGeoServiceProvider verwendet und sollte im Anwendungscode niemals aufgerufen werden müssen.
QPlaceCategory QPlaceManager::category(const QString &categoryId) const
Gibt die Kategorie zurück, die dem angegebenen „ categoryId “ entspricht.
[signal] void QPlaceManager::categoryAdded(const QPlaceCategory &category, const QString &parentId)
Dieses Signal wird ausgelöst, wenn ein „ category “ zum Datenspeicher des Managers hinzugefügt wurde. Das übergeordnete Element des „ category “ wird durch „ parentId “ angegeben.
Dieses Signal wird nur von Managern ausgesendet, die die Funktion `QPlaceManager::NotificationsFeature` unterstützen.
Siehe auch ` dataChanged()`.
[signal] void QPlaceManager::categoryRemoved(const QString &categoryId, const QString &parentId)
Dieses Signal wird ausgelöst, wenn die Kategorie, die „ categoryId “ entspricht, aus dem Datenspeicher des Managers entfernt wurde. Die übergeordnete Kategorie der entfernten Kategorie wird durch „ parentId “ angegeben.
Dieses Signal wird nur von Managern ausgegeben, die die Funktion `QPlaceManager::NotificationsFeature` unterstützen.
Siehe auch dataChanged().
[signal] void QPlaceManager::categoryUpdated(const QPlaceCategory &category, const QString &parentId)
Dieses Signal wird ausgelöst, wenn eine „ category “ im Datenspeicher des Managers geändert wurde. Die übergeordnete Kategorie der geänderten Kategorie wird durch „ parentId “ angegeben.
Dieses Signal wird nur von Managern ausgesendet, die die Funktion `QPlaceManager::NotificationsFeature` unterstützen.
Siehe auch ` dataChanged()`.
QList<QPlaceCategory> QPlaceManager::childCategories(const QString &parentId = QString()) const
Gibt eine Liste der Unterkategorien der Kategorie zurück, die unter parentId zu finden ist. Ist parentId leer, werden alle Kategorien der obersten Ebene zurückgegeben.
QStringList QPlaceManager::childCategoryIds(const QString &parentId = QString()) const
Gibt die Kennungen der Unterkategorien der Kategorie zurück, die parentId entspricht. Ist parentId leer, werden alle Kennungen der obersten Kategorieebene zurückgegeben.
QPlace QPlaceManager::compatiblePlace(const QPlace &original) const
Gibt eine bereinigte oder modifizierte Version des Ortes „ original “ zurück, die zum Speichern in diesem Manager geeignet ist.
Die modifizierte Version enthält nur diejenigen Ortsdetails, die von diesem Manager unterstützt werden. Managerspezifische Daten wie beispielsweise die Orts-ID werden nicht aus dem „ original “ übernommen.
[signal] void QPlaceManager::dataChanged()
Dieses Signal wird vom Manager ausgesendet, wenn umfangreiche Änderungen am zugrunde liegenden Datenspeicher vorgenommen werden und der Manager diese Änderungen als so gravierend erachtet, dass die Clients alle Daten neu laden müssen.
Wird dieses Signal ausgesendet, werden für die damit verbundenen Änderungen keine weiteren Signale ausgesendet.
Dieses Signal wird nur von Managern ausgegeben, die die Funktion `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 festgestellt wurde. Das Signal QPlaceManager::finished() wird wahrscheinlich folgen.
Der Fehler wird durch den Fehlercode ` error` beschrieben. Ist ` errorString ` nicht leer, enthält es eine textuelle Beschreibung des Fehlers, die sich an Entwickler und nicht an Endbenutzer richtet.
Dieses Signal und QPlaceReply::errorOccurred() werden gleichzeitig ausgelöst.
Hinweis: LöschenSie das Objekt „ reply “ nicht in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen „ deleteLater()“.
[signal] void QPlaceManager::finished(QPlaceReply *reply)
Dieses Signal wird ausgelöst, wenn die Verarbeitung von „ reply “ abgeschlossen ist.
Wenn reply->error() gleich QPlaceReply::NoError ist, wurde die Verarbeitung erfolgreich abgeschlossen.
Dieses Signal und ` QPlaceReply::finished()` werden gleichzeitig ausgelöst.
Hinweis: LöschenSie das „ reply “-Objekt nicht in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen „ deleteLater()“.
QPlaceContentReply *QPlaceManager::getPlaceContent(const QPlaceContentRequest &request) const
Ruft Inhalte für einen Ort gemäß den unter request angegebenen Parametern ab.
Ein Anwendungsbeispiel finden Sie unter „Abrufen von Rich-Content “.
QPlaceDetailsReply *QPlaceManager::getPlaceDetails(const QString &placeId) const
Ruft die Details eines Ortes ab, der der angegebenen URL placeId entspricht.
Ein Anwendungsbeispiel finden Sie unter „Ortsdetails abrufen “.
QPlaceReply *QPlaceManager::initializeCategories()
Initialisiert die Kategorien des Managers.
Ein Anwendungsbeispiel finden Sie unter „Verwendung von Kategorien “.
QList<QLocale> QPlaceManager::locales() const
Gibt eine Liste der bevorzugten Locales zurück. Die Locales dienen dem Manager als Hinweis darauf, in welcher Sprache die Orts- und Kategoriedetails zurückgegeben werden sollen.
Wenn die erste angegebene Locale nicht berücksichtigt werden kann, greift der Manager auf die nächste zurück und so weiter. Einige Manager-Backends unterstützen möglicherweise keine fest definierten Locale-Sätze. Ein beliebiges Beispiel: Für einige Orte in Frankreich könnten Lokalisierungen auf Französisch und Englisch verfügbar sein, während in bestimmten Regionen Amerikas möglicherweise nur die englische Lokalisierung zur Verfügung steht. In diesem Beispiel hängt die Menge der unterstützten Sprachumgebungen vom Suchort ab.
Wenn der Manager keine der bevorzugten Locales berücksichtigen kann, greift er auf eine unterstützte Sprache zurück, die backend-spezifisch ist.
Die Unterstützung von Locales kann von Anbieter zu Anbieter variieren. Bei Anbietern, die dies unterstützen, wird standardmäßig die globale Standard-Locale als einzige Locale des Managers festgelegt.
Bei Managern, die keine Sprachumgebungen unterstützen, ist die Liste der Sprachumgebungen 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 mit den in „ request “ angegebenen Orten übereinstimmen. Die in der Anfrage angegebenen Orte stammen von einem anderen Manager.
QString QPlaceManager::parentCategoryId(const QString &categoryId) const
Gibt die Kennung der übergeordneten Kategorie der Kategorie zurück, die categoryId entspricht.
[signal] void QPlaceManager::placeAdded(const QString &placeId)
Dieses Signal wird ausgelöst, wenn ein Ort zum Datenspeicher der Manager-Engine hinzugefügt wurde. Der konkret hinzugefügte Ort wird durch „ placeId “ angegeben.
Dieses Signal wird nur von Managern ausgegeben, die die Funktion `QPlaceManager::NotificationsFeature` unterstützen.
Siehe auch dataChanged().
[signal] void QPlaceManager::placeRemoved(const QString &placeId)
Dieses Signal wird ausgelöst, wenn ein Ort aus dem Datenspeicher des Managers entfernt wurde. Der konkret entfernte Ort wird durch ` placeId` angegeben.
Dieses Signal wird nur von Managern ausgegeben, die die Funktion `QPlaceManager::NotificationsFeature` unterstützen.
Siehe auch dataChanged().
[signal] void QPlaceManager::placeUpdated(const QString &placeId)
Dieses Signal wird ausgelöst, wenn ein Ort im Datenspeicher des Managers geändert wurde. Der konkret geänderte Ort wird durch „ placeId “ angegeben.
Dieses Signal wird nur von Managern ausgegeben, die die Funktion `QPlaceManager::NotificationsFeature` unterstützen.
Siehe auch dataChanged().
QPlaceIdReply *QPlaceManager::removeCategory(const QString &categoryId)
Entfernt die Kategorie, die „ categoryId “ entspricht, aus dem Manager.
Ein Anwendungsbeispiel finden Sie unter „Eine Kategorie entfernen “.
QPlaceIdReply *QPlaceManager::removePlace(const QString &placeId)
Entfernt den Ort, der der Adresse placeId entspricht, aus dem Manager.
Ein Anwendungsbeispiel finden Sie unter „Entfernen eines Ortes (cpp )“.
QPlaceIdReply *QPlaceManager::saveCategory(const QPlaceCategory &category, const QString &parentId = QString())
Speichert eine Kategorie „ category “, die eine Unterkategorie der unter parentId angegebenen Kategorie ist. Ein leeres parentId bedeutet, dass category als oberste Kategorie gespeichert wird.
Ein Anwendungsbeispiel finden Sie unter „Eine Kategorie speichern “.
QPlaceIdReply *QPlaceManager::savePlace(const QPlace &place)
Speichert eine angegebene „ place “.
Ein Anwendungsbeispiel finden Sie unter „Saving a place cpp “.
QPlaceSearchReply *QPlaceManager::search(const QPlaceSearchRequest &request) const
Sucht nach Orten anhand der unter request angegebenen Parameter.
Ein Anwendungsbeispiel finden Sie unter „Discovery/Search “.
QPlaceSearchSuggestionReply *QPlaceManager::searchSuggestions(const QPlaceSearchRequest &request) const
Fordert eine Reihe von Suchbegriffsvorschlägen gemäß den unter request angegebenen Parametern an. Das „ request “ kann den unvollständigen Suchbegriff sowie weitere Daten wie beispielsweise einen Suchbereich enthalten, um die relevanten Ergebnisse einzugrenzen.
Ein Anwendungsbeispiel finden Sie unter „Suchvorschläge “.
void QPlaceManager::setLocale(const QLocale &locale)
Eine Komfortfunktion, die die Liste der bevorzugten Locales des Managers auf eine einzige „ locale “ festlegt.
void QPlaceManager::setLocales(const QList<QLocale> &locales)
Legen Sie die Liste der bevorzugten locales fest.
Siehe auch locales().
© 2026 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.