Sur cette page

QPlaceManager Class

La classe QPlaceManager fournit l'interface qui permet aux clients d'accéder aux lieux stockés dans un backend particulier. Plus d'informations...

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

Fonctions publiques

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)

Signaux

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)

Description détaillée

Le tableau suivant donne un aperçu des fonctionnalités fournies par le QPlaceManager

FonctionnalitéDescription de la fonctionnalité
Recherche de lieuxÀ l'aide d'un ensemble de paramètres tels qu'un terme de recherche et une zone de recherche, des lieux pertinents peuvent être renvoyés à l'utilisateur.
CatégoriesLes lieux peuvent être classés dans différentes catégories. Le gestionnaire permet d'accéder à ces catégories.
Suggestions de termes de rechercheÀ partir d'un terme de recherche partiellement complété, une liste de termes de recherche potentiels peut être fournie.
RecommandationsPour un lieu existant, un ensemble de lieux similaires recommandés peut être suggéré à l'utilisateur.
Contenu richeLe contenu riche, tel que les images, les critiques, etc., peut être récupéré de manière paginée.
Gestion des lieux ou des catégoriesLes lieux et les catégories peuvent être sauvegardés et supprimés. Il est possible d'envoyer des notifications lorsque cela se produit.
LocalisationDifférentes locales peuvent être spécifiées pour renvoyer les données sur les lieux dans différentes langues.

Obtention d'une instance de QPlaceManager

La création d'un QPlaceManager est facilitée par l'adresse QGeoServiceProvider. Voir Initialisation d'un gestionnaire pour un exemple de création d'un gestionnaire.

Interface asynchrone

La classe QPlaceManager fournit une abstraction du magasin de données qui contient les informations sur les lieux. Les fonctions fournies par le QPlaceManager sont principalement asynchrones et suivent un modèle requête-réponse. En règle générale, le gestionnaire reçoit une demande composée d'un ensemble de paramètres et un objet de réponse est créé. L'objet réponse dispose d'un signal pour notifier la fin de la requête et, une fois celle-ci terminée, la réponse contient les résultats de la requête, ainsi que les éventuelles erreurs survenues, le cas échéant.

Une requête asynchrone est généralement traitée comme suit :

//1) Formuler une demande appropriéeQPlaceSearchRequest searchRequest ; searchRequest.setSearchTerm("crème glacée") ; searchRequest.setSearchArea(QGeoCircle(QGeoCoordinate(12.34, 56.78))) ;//2) Utiliser le gestionnaire pour lancer une requête et récupérer un objet de réponseQPlaceSearchReply * searchReply =  manager->search(searchRequest) ;//3) Connecter l'objet réponse à un slot qui est invoqué à la fin de l'opérationconnect(searchReply, &QPlaceSearchReply::finished, this, &RequestHandler::processSearchReply) ; ... ...//4) Faire en sorte que le slot traite de manière appropriée les résultats de l'opérationvoid processSearchReply() { if (searchReply->error() == QPlaceReply::NoError) { for(const QPlaceSearchResult &result:  searchReply->results()) { if (result.type() == QPlaceSearchResult::PlaceResult)                qDebug() << "Title:" << result.title();
        } }//5) Jeter l'objet rely une fois terminé. searchReply->deleteLater() ; searchReply = nullptr ; }

Voir Opérations courantes pour une liste d'exemples démontrant comment le QPlaceManger est utilisé.

Initialisation de la catégorie

Au cours du démarrage d'une application, la fonction initializeCategories() doit être appelée pour configurer les catégories. L'initialisation des catégories permet d'utiliser les fonctions suivantes :

Si les catégories doivent être rafraîchies ou rechargées, la fonction initializeCategories() peut être appelée à nouveau.

Documentation des fonctions membres

[virtual noexcept] QPlaceManager::~QPlaceManager()

Détruit le gestionnaire. Ce destructeur est utilisé en interne par QGeoServiceProvider et ne devrait jamais être appelé dans le code de l'application.

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

Renvoie la catégorie correspondant à l'adresse categoryId.

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

Ce signal est émis si un category a été ajouté au magasin de données du gestionnaire. Le parent de category est spécifié par parentId.

Ce signal n'est émis que par les gestionnaires qui supportent la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Ce signal est émis lorsque la catégorie correspondant à categoryId a été supprimée du magasin de données du gestionnaire. Le parent de la catégorie supprimée est spécifié par parentId.

Ce signal n'est émis que par les gestionnaires qui prennent en charge la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Ce signal est émis si une catégorie category a été modifiée dans le magasin de données du gestionnaire. Le parent de la catégorie modifiée est spécifié par parentId.

Ce signal n'est émis que par les gestionnaires qui prennent en charge la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Renvoie une liste de catégories qui sont des enfants de la catégorie correspondant à parentId. Si parentId est vide, toutes les catégories de niveau supérieur sont renvoyées.

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

Renvoie les identifiants des catégories enfants de la catégorie correspondant à parentId. Si parentId est vide, tous les identifiants des catégories de premier niveau sont renvoyés.

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

Renvoie une version élaguée ou modifiée du lieu original qui peut être enregistrée dans ce gestionnaire.

Seuls les détails du lieu pris en charge par ce gestionnaire sont présents dans la version modifiée. Les données spécifiques au gestionnaire, telles que l'identifiant du lieu, ne sont pas copiées à partir de la version original.

[signal] void QPlaceManager::dataChanged()

Ce signal est émis par le gestionnaire lorsque des changements à grande échelle sont apportés au magasin de données sous-jacent et que le gestionnaire considère que ces changements sont suffisamment radicaux pour obliger les clients à recharger toutes les données.

Si ce signal est émis, aucun autre signal ne sera émis pour les changements associés.

Ce signal n'est émis que par les gestionnaires qui supportent la fonctionnalité QPlaceManager::NotificationsFeature.

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

Ce signal est émis lorsqu'une erreur a été détectée dans le traitement de reply. Le signal QPlaceManager::finished() suivra probablement.

L'erreur sera décrite par le code d'erreur error. Si errorString n'est pas vide, il contiendra une description textuelle de l'erreur destinée aux développeurs et non aux utilisateurs finaux.

Ce signal et QPlaceReply::errorOccurred() seront émis en même temps.

Remarque : ne supprimez pas l'objet reply dans le slot connecté à ce signal. Utilisez plutôt deleteLater().

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

Ce signal est émis lorsque reply a terminé le traitement.

Si reply->error() est égal à QPlaceReply::NoError, le traitement s'est terminé avec succès.

Ce signal et QPlaceReply::finished() seront émis en même temps.

Note : Ne supprimez pas l'objet reply dans le slot connecté à ce signal. Utilisez plutôt deleteLater().

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

Récupère le contenu d'un lieu en fonction des paramètres spécifiés dans request.

Voir Fetching Rich Content pour un exemple d'utilisation.

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

Récupère les détails d'un lieu correspondant à l'adresse placeId.

Voir Fetching Place Details pour un exemple d'utilisation.

QPlaceReply *QPlaceManager::initializeCategories()

Initialise les catégories du gestionnaire.

Voir Utilisation des catégories pour un exemple d'utilisation.

QList<QLocale> QPlaceManager::locales() const

Renvoie une liste des langues préférées. Les lieux sont utilisés pour indiquer au gestionnaire la langue dans laquelle les détails relatifs au lieu et à la catégorie doivent être renvoyés.

Si la première locale spécifiée ne peut être prise en compte, le gestionnaire passe à la suivante, et ainsi de suite. Certains gestionnaires peuvent ne pas prendre en charge un ensemble de paramètres locaux définis de manière rigide. Un exemple arbitraire est que certaines régions de France peuvent avoir des localisations en français et en anglais, alors que certaines régions d'Amérique peuvent n'avoir que la localisation en anglais. Dans cet exemple, l'ensemble des langues prises en charge dépend du contexte du lieu de recherche.

Si le gestionnaire ne peut prendre en charge aucune des langues préférées, il se rabat sur l'utilisation d'une langue prise en charge qui est spécifique au backend.

La prise en charge des langues peut varier d'un fournisseur à l'autre. Pour ceux qui le prennent en charge, les paramètres linguistiques globaux par défaut sont définis comme les seuls paramètres linguistiques du gestionnaire.

Pour les gestionnaires qui ne prennent pas en charge les locales, la liste des locales est toujours vide.

Voir aussi setLocales().

QString QPlaceManager::managerName() const

Renvoie le nom du gestionnaire

int QPlaceManager::managerVersion() const

Renvoie la version du gestionnaire.

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

Renvoie une réponse contenant une liste de lieux qui correspondent à ceux spécifiés dans request. Les lieux spécifiés dans la demande proviennent d'un gestionnaire différent.

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

Renvoie l'identifiant de la catégorie parente de la catégorie correspondant à categoryId.

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

Ce signal est émis si un lieu a été ajouté au magasin de données du moteur de gestion. Le lieu particulier ajouté est spécifié par placeId.

Ce signal n'est émis que par les gestionnaires qui prennent en charge la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Ce signal est émis si un lieu a été supprimé du magasin de données du gestionnaire. Le lieu particulier qui a été supprimé est spécifié par placeId.

Ce signal n'est émis que par les gestionnaires qui prennent en charge la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Ce signal est émis si un lieu a été modifié dans le magasin de données du gestionnaire. Le lieu modifié particulier est spécifié par placeId.

Ce signal n'est émis que par les gestionnaires qui prennent en charge la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Supprime du gestionnaire la catégorie correspondant à categoryId.

Voir Suppression d'une catégorie pour un exemple d'utilisation.

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

Supprime du gestionnaire le lieu correspondant à placeId.

Voir Suppression d'un lieu cpp pour un exemple d'utilisation.

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

Enregistre un category qui est un enfant de la catégorie spécifiée par parentId. Un parentId vide signifie que category est sauvegardé en tant que catégorie de premier niveau.

Voir Sauvegarder une catégorie pour un exemple d'utilisation.

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

Sauvegarde un emplacement spécifié place.

Voir Saving a place cpp pour un exemple d'utilisation.

Recherche des lieux en fonction des paramètres spécifiés dans request.

Voir Discovery/Search pour un exemple d'utilisation.

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

Demande un ensemble de suggestions de termes de recherche en fonction des paramètres spécifiés dans request. Le site request peut contenir le terme de recherche incomplet, ainsi que d'autres données telles qu'une zone de recherche pour réduire les résultats pertinents.

Voir Suggestions de recherche pour un exemple d'utilisation.

void QPlaceManager::setLocale(const QLocale &locale)

Fonction pratique qui fixe la liste des lieux préférés du gestionnaire à un seul locale.

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

Définir la liste des sites préférés locales.

Voir aussi 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.