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 spécifique. En savoir plus...

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 présente un aperçu des fonctionnalités offertes par le QPlaceManager

FonctionnalitéDescription
Recherche de lieuxÀ l’aide d’un ensemble de paramètres, tels qu’un terme de recherche et une zone de recherche, les lieux pertinents peuvent être proposé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 saisi, une liste de termes de recherche potentiels peut être proposée.
RecommandationsÀ partir d’un lieu existant, un ensemble de lieux similaires peut être proposé à l’utilisateur.
Contenu enrichiLe contenu enrichi, tel que les images, les avis, etc., peut être consulté sous forme de pages.
Gestion des lieux ou des catégoriesLes lieux et les catégories peuvent être enregistrés ou supprimés. Il est possible d'envoyer des notifications lorsque cela se produit.
LocalisationDifférentes paramètres régionaux peuvent être spécifiés pour afficher les données relatives aux lieux dans différentes langues.

Obtenir une instance de QPlaceManager

La création d’un QPlaceManager est facilitée par la classe ` QGeoServiceProvider`. Reportez-vous à la section Initialisation d’un gestionnaire pour voir un exemple de création d’un gestionnaire.

Interface asynchrone

La classe QPlaceManager fournit une abstraction du magasin de données contenant les informations relatives aux lieux. Les fonctions fournies par le QPlaceManager sont principalement asynchrones et suivent un modèle requête-réponse. En général, une requête est transmise au gestionnaire, composée d’un ensemble de paramètres variés, et un objet de réponse est créé. L’objet de réponse dispose d’un signal permettant d’indiquer que la requête est terminée ; une fois celle-ci terminée, la réponse contient les résultats de la requête, ainsi que les éventuelles erreurs survenues.

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

//1) Effectuer une requête appropriée
QPlaceSearchRequest searchRequest;
searchRequest.setSearchTerm("glace");
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éponse
QPlaceSearchReply* searchReply = manager->search(searchRequest);

//3) Connecter l’objet-réponse à un slot qui est appelé une fois l’opération terminée
connect(searchReply, &QPlaceSearchReply::finished,
        this, &RequestHandler::processSearchReply);
    ...
    ...
//4) Faire en sorte que le slot traite correctement les résultats de l'opération
void processSearchReply() {
    if (searchReply->error()== QPlaceReply::NoError) {
        for (const QPlaceSearchResult&result: searchReply->results()) {
            if (result.type()== QPlaceSearchResult::PlaceResult)
                qDebug() << "Title:" << result.title();
        }
    }

//5) Supprimer l'objet « reply » une fois l'opération terminée.
    searchReply->deleteLater();
    searchReply = nullptr;
}

Consultez la section « Opérations courantes » pour obtenir une liste d’exemples illustrant l’utilisation de QPlaceManager.

Catégorie Initialisation

À un moment donné lors 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 actualisées ou rechargées, la fonction initializeCategories() peut être appelée à nouveau.

Documentation sur les fonctions membres

[virtual noexcept] QPlaceManager::~QPlaceManager()

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

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

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

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

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

Ce signal n'est émis que par les gestionnaires prenant en charge 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 prenant en charge la fonctionnalité QPlaceManager::NotificationsFeature.

Voir également dataChanged().

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

Ce signal est émis lorsqu'une catégorie ( category ) a été modifiée dans le magasin de données du gestionnaire. La catégorie parente de la catégorie modifiée est spécifiée par parentId.

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

Voir également ` dataChanged()`.

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

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

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

Renvoie les identifiants des sous-catégories 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 allégée ou modifiée de l'objet « place » issu de original, adaptée pour être enregistrée dans ce gestionnaire.

Seules les informations sur le lieu prises en charge par ce gestionnaire sont présentes dans la version modifiée. Les données spécifiques au gestionnaire, telles que l'identifiant du lieu, ne sont pas copiées depuis original.

[signal] void QPlaceManager::dataChanged()

Ce signal est émis par le gestionnaire en cas de modifications à grande échelle de son magasin de données sous-jacent, lorsque celui-ci estime que ces modifications sont suffisamment importantes pour nécessiter que les clients rechargent l'intégralité des données.

Si ce signal est émis, aucun autre signal ne sera émis pour les modifications associées.

Ce signal n'est émis que par les gestionnaires prenant en charge l'interface 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 lors du 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 simultanément.

Remarque : ne supprimezpas l’objet ` reply ` dans le slot connecté à ce signal. Utilisez plutôt la méthode ` deleteLater()`.

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

Ce signal est émis lorsque le traitement de ` reply ` est terminé.

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

Ce signal et la fonction QPlaceReply::finished() seront émis simultanément.

Remarque : 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 selon les paramètres spécifiés dans request.

Voir Récupération de contenu enrichi pour un exemple d'utilisation.

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

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

Voir « Récupération des détails d'un lieu » pour un exemple d'utilisation.

QPlaceReply *QPlaceManager::initializeCategories()

Initialise les catégories du gestionnaire.

Voir la section « Utilisation des catégories » pour un exemple d'utilisation.

QList<QLocale> QPlaceManager::locales() const

Renvoie une liste de paramètres régionaux préférés. Ces paramètres régionaux servent d'indication au gestionnaire pour déterminer 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 pas être prise en charge, le gestionnaire passe à la suivante, et ainsi de suite. Certains backends du gestionnaire peuvent ne pas prendre en charge un ensemble de locales défini de manière rigide. À titre d’exemple, certaines localités en France pourraient disposer de localisations en français et en anglais, tandis que certaines régions des États-Unis ne disposeraient que de la localisation en anglais. Dans cet exemple, l’ensemble des paramètres régionaux pris en charge dépend du contexte, c’est-à-dire du lieu de recherche.

Si le gestionnaire ne peut prendre en charge aucune des localisations préférées, il utilise alors une langue prise en charge spécifique au backend.

La prise en charge des paramètres régionaux peut varier d’un fournisseur à l’autre. Pour ceux qui la prennent en charge, par défaut, le paramètre régional global par défaut est défini comme le seul paramètre régional du gestionnaire.

Pour les gestionnaires qui ne prennent pas en charge les paramètres régionaux, la liste des paramètres régionaux est toujours vide.

Voir également 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 des lieux qui correspondent à ceux spécifiés dans l'request. Les lieux spécifiés dans la requête proviennent d'un autre gestionnaire.

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 lorsqu'un lieu a été ajouté au magasin de données du moteur de gestion. Le lieu ajouté est identifié par l'placeId.

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

Voir également dataChanged().

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

Ce signal est émis lorsqu'un lieu a été supprimé du magasin de données du gestionnaire. Le lieu concerné est spécifié par ` placeId`.

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

Voir également dataChanged().

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

Ce signal est émis lorsqu'un lieu a été modifié dans le magasin de données du gestionnaire. Le lieu concerné par la modification est spécifié par placeId.

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

Voir également dataChanged().

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

Supprime du gestionnaire la catégorie correspondant à « categoryId ».

Voir « Supprimer une catégorie » pour un exemple d'utilisation.

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

Supprime de la liste de gestion l'emplacement correspondant à placeId.

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

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

Enregistre une « category » qui est une sous-catégorie de la catégorie spécifiée par « parentId ». Si « parentId » est vide, « category » est enregistrée en tant que catégorie de premier niveau.

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

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

Enregistre une instance d'place.

Voir « Enregistrer un emplacement cpp » pour un exemple d'utilisation.

Recherche des lieux selon les paramètres indiqués sur request.

Consultez la section « Découverte/Recherche » pour un exemple d'utilisation.

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

Demande une liste de suggestions de termes de recherche en fonction des paramètres spécifiés dans request. L'request peut contenir le terme de recherche incomplet, ainsi que d'autres données telles qu'une zone de recherche permettant d'affiner les résultats pertinents.

Voir Suggestions de recherche pour un exemple d'utilisation.

void QPlaceManager::setLocale(const QLocale &locale)

Fonction pratique permettant de définir la liste des paramètres régionaux préférés du gestionnaire sur une seule valeur : locale.

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

Définissez 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.