Sur cette page

QGeoRoutingManagerEngine Class

La classe `QGeoRoutingManagerEngine` fournit une interface et des méthodes pratiques aux développeurs de plugins pour ` QGeoServiceProvider ` qui souhaitent donner accès à des informations de routage géographique. En savoir plus…

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

Fonctions publiques

QGeoRoutingManagerEngine(const QVariantMap &parameters, QObject *parent = nullptr)
virtual ~QGeoRoutingManagerEngine()
virtual QGeoRouteReply *calculateRoute(const QGeoRouteRequest &request) = 0
QLocale locale() const
QString managerName() const
int managerVersion() const
QLocale::MeasurementSystem measurementSystem() const
void setLocale(const QLocale &locale)
void setMeasurementSystem(QLocale::MeasurementSystem system)
QGeoRouteRequest::FeatureTypes supportedFeatureTypes() const
QGeoRouteRequest::FeatureWeights supportedFeatureWeights() const
QGeoRouteRequest::ManeuverDetails supportedManeuverDetails() const
QGeoRouteRequest::RouteOptimizations supportedRouteOptimizations() const
QGeoRouteRequest::SegmentDetails supportedSegmentDetails() const
QGeoRouteRequest::TravelModes supportedTravelModes() const
virtual QGeoRouteReply *updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)

Signaux

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

Fonctions protégées

void setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)
void setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)
void setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)
void setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)
void setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)
void setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)

Description détaillée

Remarque : il n'y a aucune garantie de compatibilité source ou binaire pour les classes du backend. Le fonctionnement de l'API n'est garanti 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.).

Les sous-classes de QGeoRoutingManagerEngine doivent fournir une implémentation de la méthode calculateRoute().

Dans l’implémentation par défaut, supportsRouteUpdates() renvoie false et updateRoute() renvoie un objet QGeoRouteReply contenant une QGeoRouteReply::UnsupportedOptionError.

Si le service de routage prend en charge la mise à jour des itinéraires au fur et à mesure de leur parcours, la sous-classe doit fournir une implémentation de la méthode ` updateRoute()` et appeler `setSupportsRouteUpdates(true)` à un moment donné avant l’appel de ` updateRoute()`.

La fonction setSupportsRouteUpdates() fait partie des fonctions permettant de configurer les capacités déclarées du moteur. Si les capacités d’un moteur diffèrent des valeurs par défaut, ces fonctions doivent être utilisées afin que les capacités déclarées soient exactes.

Il est important que cette opération soit effectuée avant l’appel de calculateRoute(), updateRoute() ou de toute autre fonction de déclaration de capacités, afin d’éviter tout comportement incorrect ou incohérent.

Une sous-classe de `QGeoRouteManagerEngine` utilise souvent en interne une sous-classe de ` QGeoRouteReply `, afin d’ajouter des données spécifiques au moteur (telles qu’un objet ` QNetworkReply ` pour les services réseau) aux instances de ` QGeoRouteReply ` utilisées par le moteur.

Voir également QGeoRoutingManager.

Documentation des fonctions membres

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

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

[virtual noexcept] QGeoRoutingManagerEngine::~QGeoRoutingManagerEngine()

Cela détruit ce moteur.

[pure virtual] QGeoRouteReply *QGeoRoutingManagerEngine::calculateRoute(const QGeoRouteRequest &request)

Lance le calcul de l'itinéraire spécifié par request.

Un objet ` QGeoRouteReply ` sera renvoyé ; celui-ci peut être utilisé pour gérer l'opération de calcul d'itinéraire et pour renvoyer les résultats de l'opération.

Ce moteur et l'objet ` QGeoRouteReply ` renvoyé émettent des signaux indiquant si l’opération s’est achevée ou si des erreurs se sont produites.

Une fois l’opération terminée, QGeoRouteReply::routes peut être utilisé pour récupérer l’itinéraire ou les itinéraires calculés.

Si ` request ` inclut des fonctionnalités non prises en charge par ce moteur, comme signalé par les méthodes de ce dernier, une exception ` QGeoRouteReply::UnsupportedOptionError ` sera levée.

Il incombe à l’utilisateur de supprimer l’objet de réponse renvoyé, bien que cela puisse être effectué dans le slot associé à QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() ou QGeoRouteReply::errorOccurred() à l’aide de deleteLater().

[signal] void QGeoRoutingManagerEngine::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::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 QGeoRoutingManagerEngine::finished() sera probablement émis à la suite.

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 QGeoRouteReply::errorOccurred() seront émis simultanément.

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

[signal] void QGeoRoutingManagerEngine::finished(QGeoRouteReply *reply)

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

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

Ce signal et QGeoRouteReply::finished() seront émis simultanément.

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

QLocale QGeoRoutingManagerEngine::locale() const

Renvoie les paramètres régionaux utilisés pour indiquer à ce gestionnaire de routage quelle langue utiliser pour les adresses et les instructions.

Voir également setLocale().

QString QGeoRoutingManagerEngine::managerName() const

Renvoie le nom utilisé par cette implémentation du moteur 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 QGeoRoutingManagerEngine::managerVersion() const

Renvoie la version de cette implémentation du moteur.

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

QLocale::MeasurementSystem QGeoRoutingManagerEngine::measurementSystem() const

Renvoie le système de mesure utilisé par ce gestionnaire.

Si la fonction ` setMeasurementSystem()` a été appelée, la valeur renvoyée par cette fonction peut être différente de celle renvoyée par ` locale()` ou `measurementSystem()`. Dans ce cas, la valeur renvoyée par cette fonction est celle qui sera utilisée par le gestionnaire.

Voir également setMeasurementSystem() et setLocale().

void QGeoRoutingManagerEngine::setLocale(const QLocale &locale)

Définit les paramètres régionaux que ce gestionnaire doit utiliser sur locale.

Si ce gestionnaire de routage prend en charge le renvoi d'adresses et d'instructions dans différentes langues, celles-ci seront renvoyées dans la langue de locale.

Si aucune locale n’est définie, la locale par défaut du système est utilisée.

Voir également locale().

void QGeoRoutingManagerEngine::setMeasurementSystem(QLocale::MeasurementSystem system)

Définit le système de mesure utilisé par ce gestionnaire sur « system ».

Le système de mesure peut être défini indépendamment des paramètres régionaux. La fonction ` setLocale()` et la présente fonction permettent toutes deux de définir le système de mesure. C’est la valeur définie par la dernière fonction appelée qui sera utilisée.

Voir également measurementSystem(), locale() et setLocale().

[protected] void QGeoRoutingManagerEngine::setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)

Définit les types d'éléments que ce moteur peut prendre en compte lors du calcul d'itinéraire à l'adresse featureTypes.

Il est important que les sous-classes utilisent cette méthode pour garantir que le moteur signale correctement ses capacités. Si cette fonction n’est pas utilisée, le moteur indiquera qu’il ne prend en charge aucun type d’élément.

Voir également supportedFeatureTypes().

[protected] void QGeoRoutingManagerEngine::setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)

Définit les pondérations que ce moteur peut appliquer aux différentes caractéristiques lors de la planification d'itinéraire vers featureWeights.

Il est important que les sous-classes utilisent cette méthode pour garantir que le moteur signale correctement ses capacités. Si cette fonction n’est pas utilisée, le moteur indiquera qu’il ne prend en charge aucune pondération de caractéristiques.

Voir également supportedFeatureWeights().

[protected] void QGeoRoutingManagerEngine::setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)

Définit les niveaux de détail des manœuvres de navigation que ce moteur peut demander à maneuverDetails.

Il est important que les sous-classes utilisent cette méthode pour garantir que le moteur signale correctement ses capacités. Si cette fonction n’est pas utilisée, le moteur indiquera qu’il ne prend en charge aucun détail de manœuvre.

Voir également supportedManeuverDetails().

[protected] void QGeoRoutingManagerEngine::setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)

Définit les optimisations d'itinéraire prises en charge par ce moteur sur « optimizations ».

Il est important que les sous-classes utilisent cette méthode pour garantir que le moteur signale correctement ses capacités. Si cette fonction n’est pas utilisée, le moteur indiquera qu’il ne prend en charge aucune optimisation d’itinéraire.

Voir également supportedRouteOptimizations().

[protected] void QGeoRoutingManagerEngine::setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)

Définit les niveaux de détail des segments d'itinéraire que ce moteur peut demander à segmentDetails.

Il est important que les sous-classes utilisent cette méthode afin de garantir que le moteur signale correctement ses capacités. Si cette fonction n’est pas utilisée, le moteur indiquera qu’il ne prend en charge aucun niveau de détail des segments.

Voir également supportedSegmentDetails().

[protected] void QGeoRoutingManagerEngine::setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)

Définit les modes de déplacement pris en charge par ce moteur sur « travelModes ».

Il est important que les sous-classes utilisent cette méthode pour garantir que le moteur signale correctement ses capacités. Si cette fonction n'est pas utilisée, le moteur indiquera qu'il ne prend en charge aucun mode de déplacement.

Voir également supportedTravelModes().

QGeoRouteRequest::FeatureTypes QGeoRoutingManagerEngine::supportedFeatureTypes() const

Renvoie les types d'éléments que ce moteur peut prendre en compte lors du calcul d'itinéraire.

Voir également setSupportedFeatureTypes().

QGeoRouteRequest::FeatureWeights QGeoRoutingManagerEngine::supportedFeatureWeights() const

Renvoie les pondérations que ce moteur peut appliquer aux différents éléments lors du calcul d'itinéraire.

Voir également setSupportedFeatureWeights().

QGeoRouteRequest::ManeuverDetails QGeoRoutingManagerEngine::supportedManeuverDetails() const

Renvoie les niveaux de détail des manœuvres de navigation pouvant être demandés par ce moteur.

Voir également setSupportedManeuverDetails().

QGeoRouteRequest::RouteOptimizations QGeoRoutingManagerEngine::supportedRouteOptimizations() const

Renvoie les optimisations d'itinéraire prises en charge par ce moteur.

Voir également setSupportedRouteOptimizations().

QGeoRouteRequest::SegmentDetails QGeoRoutingManagerEngine::supportedSegmentDetails() const

Renvoie les niveaux de détail des segments de routage pouvant être demandés par ce moteur.

Voir également setSupportedSegmentDetails().

QGeoRouteRequest::TravelModes QGeoRoutingManagerEngine::supportedTravelModes() const

Renvoie les modes de déplacement pris en charge par ce moteur.

Voir aussi setSupportedTravelModes().

[virtual] QGeoRouteReply *QGeoRoutingManagerEngine::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)

Lance le processus de mise à jour de l'route en fonction de la position actuelle position.

Un objet ` QGeoRouteReply ` sera renvoyé ; celui-ci peut être utilisé pour gérer l'opération de routage et pour renvoyer les résultats de l'opération.

Ce moteur et l’objet ` QGeoRouteReply ` renvoyé émettront des signaux indiquant si l’opération s’est achevée ou si des erreurs se sont produites.

Si supportsRouteUpdates() renvoie « false », une exception de type « QGeoRouteReply::UnsupportedOptionError » sera levée.

Une fois l’opération terminée, l’ QGeoRouteReply::routes peut être utilisé pour récupérer l’itinéraire mis à jour.

L’itinéraire renvoyé peut être totalement différent de l’itinéraire d’origine, en particulier si position est suffisamment éloigné de l’itinéraire initial. Dans le cas contraire, l’itinéraire sera similaire, bien que le temps restant et la distance soient mis à jour et que tous les segments de l’itinéraire d’origine qui ont été parcourus soient supprimés.

Il incombe à l’utilisateur de supprimer l’objet de réponse renvoyé, bien que cela puisse être effectué dans le slot associé à QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() ou QGeoRouteReply::errorOccurred() à l’aide de deleteLater().

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