Sur cette page

QGeoCodingManagerEngine Class

La classe QGeoCodingManagerEngine fournit une interface et des méthodes de commodité aux implémenteurs de plugins QGeoServiceProvider qui souhaitent prendre en charge les opérations de géocodage. Plus d'informations...

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

Fonctions publiques

QGeoCodingManagerEngine(const QVariantMap &parameters, QObject *parent = nullptr)
virtual ~QGeoCodingManagerEngine()
virtual QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds)
virtual QGeoCodeReply *geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)
QLocale locale() const
QString managerName() const
int managerVersion() const
virtual QGeoCodeReply *reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)
void setLocale(const QLocale &locale)

Signaux

void errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())
void finished(QGeoCodeReply *reply)

Description détaillée

Note : Il n'y a aucune garantie de compatibilité source ou binaire pour les classes backend. L'API n'est garantie de fonctionner qu'avec la version de Qt pour laquelle elle a été développée. Les modifications de l'API ne seront toutefois apportées que dans les versions mineures. (6.6, 6.7, etc.).

Dans l'implémentation par défaut, supportsGeocoding() et supportsReverseGeocoding() renvoient false tandis que geocode() et reverseGeocode() provoquent QGeoCodeReply::UnsupportedOptionError.

Si le fournisseur de services prend en charge le géocodage, la sous-classe doit fournir une implémentation de geocode() et appeler setSupportsGeocoding(true) à un moment donné avant que geocode() ne soit appelé.

De même, si le fournisseur de services prend en charge le géocodage inversé, la sous-classe doit fournir une implémentation de reverseGeocode() et appeler setSupportsReverseGeocoding(true) à un moment donné avant que reverseGeocode() ne soit appelé.

Une sous-classe de QGeoCodingManagerEngine utilisera souvent une sous-classe de QGeoCodeReply en interne, afin d'ajouter toute donnée spécifique au moteur (telle qu'un objet QNetworkReply pour les services basés sur le réseau) aux instances QGeoCodeReply utilisées par le moteur.

Voir également QGeoCodingManager.

Documentation sur les fonctions membres

[explicit] QGeoCodingManagerEngine::QGeoCodingManagerEngine(const QVariantMap &parameters, QObject *parent = nullptr)

Construit un nouveau moteur avec l'adresse parent spécifiée, en utilisant parameters pour transmettre au moteur les données spécifiques à l'implémentation.

[virtual noexcept] QGeoCodingManagerEngine::~QGeoCodingManagerEngine()

Détruit ce moteur.

[signal] void QGeoCodingManagerEngine::errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::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 QGeoCodingManagerEngine::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.

Ce signal et QGeoCodeReply::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 QGeoCodingManagerEngine::finished(QGeoCodeReply *reply)

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

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

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

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

[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QGeoAddress &address, const QGeoShape &bounds)

Commence le géocodage de address. Le géocodage est le processus qui consiste à trouver une coordonnée correspondant à une adresse donnée.

Un objet QGeoCodeReply sera renvoyé, qui peut être utilisé pour gérer l'opération de géocodage et pour renvoyer les résultats de l'opération.

Ce moteur et l'objet QGeoCodeReply renvoyé émettront des signaux indiquant si l'opération est terminée ou si des erreurs se produisent.

Si la fonction supportsGeocoding() renvoie la valeur false, un message QGeoCodeReply::UnsupportedOptionError est émis.

Une fois l'opération terminée, QGeoCodeReply::locations() peut être utilisé pour récupérer les résultats, qui consisteront en une liste d'objets QGeoLocation. Ces objets représentent une combinaison de coordonnées et d'adresses.

Les données d'adresse renvoyées dans les résultats peuvent être différentes de celles de address, ce qui se produit généralement si le backend du service de géocodage utilise une forme canonique différente pour les adresses ou si address n'a été que partiellement rempli.

Si bounds n'est pas nul et qu'il s'agit d'une adresse QGeoShape valide, il sera utilisé pour limiter les résultats à ceux qui sont contenus dans bounds. Ceci est particulièrement utile si address n'est que partiellement rempli, car le service tentera de géocoder toutes les correspondances pour les données spécifiées.

L'utilisateur est responsable de la suppression de l'objet de réponse renvoyé, bien que cela puisse être fait dans le slot connecté à QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() ou QGeoCodeReply::errorOccurred() avec deleteLater().

[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)

Commence le géocodage d'un lieu correspondant à address.

Un objet QGeoCodeReply sera renvoyé, qui peut être utilisé pour gérer l'opération de géocodage et renvoyer les résultats de l'opération.

Ce moteur et l'objet QGeoCodeReply renvoyé émettront des signaux indiquant si l'opération est terminée ou si des erreurs se produisent.

Une fois l'opération terminée, QGeoCodeReply::locations() peut être utilisé pour récupérer les résultats, qui consisteront en une liste d'objets QGeoLocation. Ces objets représentent une combinaison de données de coordonnées et d'adresses.

Si limit vaut -1, l'ensemble des résultats sera renvoyé, sinon au maximum limit sera renvoyé.

Le paramètre offset est utilisé pour demander au service de géocodage de ne pas renvoyer les premiers résultats offset.

Les résultats limit et offset sont utilisés ensemble pour mettre en œuvre la pagination.

Si bounds n'est pas nul et que QGeoShape est valide, il sera utilisé pour limiter les résultats à ceux qui sont contenus dans bounds.

L'utilisateur est responsable de la suppression de l'objet de réponse renvoyé, bien que cela puisse être fait dans le slot connecté à QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() ou QGeoCodeReply::errorOccurred() avec deleteLater().

QLocale QGeoCodingManagerEngine::locale() const

Renvoie la locale utilisée pour indiquer à ce gestionnaire de géocodage la langue à utiliser pour les résultats.

Voir aussi setLocale().

QString QGeoCodingManagerEngine::managerName() const

Renvoie le nom que l'implémentation de ce moteur utilise pour se distinguer des implémentations fournies par d'autres plugins.

La combinaison de managerName() et managerVersion() doit être unique parmi les implémentations de plugins.

int QGeoCodingManagerEngine::managerVersion() const

Renvoie la version de l'implémentation de ce moteur.

La combinaison de managerName() et managerVersion() doit être unique parmi les implémentations de plugins.

[virtual] QGeoCodeReply *QGeoCodingManagerEngine::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)

Commence le géocodage inversé de coordinate. Le géocodage inverse consiste à trouver une adresse correspondant à une coordonnée donnée.

Un objet QGeoCodeReply sera renvoyé, qui peut être utilisé pour gérer l'opération de géocodage inverse et pour renvoyer les résultats de l'opération.

Ce moteur et l'objet QGeoCodeReply renvoyé émettent des signaux indiquant si l'opération est terminée ou si des erreurs se produisent.

Si supportsReverseGeocoding() renvoie false, un message QGeoCodeReply::UnsupportedOptionError est émis.

À ce moment-là, QGeoCodeReply::locations() peut être utilisé pour récupérer les résultats, qui consisteront en une liste d'objets QGeoLocation. Ces objets représentent une combinaison de données de coordonnées et d'adresses.

Les données de coordonnées renvoyées dans les résultats peuvent être différentes de celles de coordinate. Cela se produit généralement si le backend du service de géocodage inverse modifie les coordonnées pour les rapprocher des adresses correspondantes, ou si le backend renvoie des résultats à plusieurs niveaux de détail.

Si plusieurs résultats sont renvoyés par le backend du service de géocodage inversé, ils seront fournis par ordre de spécificité. Cela se produit normalement si le backend est configuré pour effectuer un géocodage inverse à plusieurs niveaux de détail. Par exemple, certains services renvoient des paires d'adresses et de coordonnées pour l'adresse de la rue, la ville, l'État et le pays.

Si bounds n'est pas nul et que QGeoShape est valide, il sera utilisé pour limiter les résultats à ceux qui sont contenus dans bounds.

L'utilisateur est responsable de la suppression de l'objet de réponse renvoyé, bien que cela puisse être fait dans le slot connecté à QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() ou QGeoCodeReply::errorOccurred() avec deleteLater().

void QGeoCodingManagerEngine::setLocale(const QLocale &locale)

Définit la locale à utiliser par ce gestionnaire à locale.

Si ce gestionnaire de géocodage prend en charge le renvoi des résultats dans différentes langues, ceux-ci seront renvoyés dans la langue de locale.

La locale utilisée est par défaut la locale du système si elle n'est pas définie.

Voir aussi locale().

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