QGeoRoutingManager Class
La classe QGeoRoutingManager fournit un support pour les opérations de routage géographique. Plus d'informations...
| Header: | #include <QGeoRoutingManager> |
| qmake: | QT += location |
| Inherits: | QObject |
Fonctions publiques
| virtual | ~QGeoRoutingManager() |
| QGeoRouteReply * | calculateRoute(const QGeoRouteRequest &request) |
| 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 |
| QGeoRouteReply * | updateRoute(const QGeoRoute &route, const QGeoCoordinate &position) |
Signaux
| void | errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString()) |
| void | finished(QGeoRouteReply *reply) |
Description détaillée
Les méthodes calculateRoute() et updateRoute() font fonctionner les objets QGeoRouteReply, qui gèrent ces opérations et rendent compte du résultat des opérations et des erreurs éventuelles.
La fonction calculateRoute() est utilisée pour trouver un itinéraire (ou des itinéraires) qui suit un ensemble de points de passage et répond à divers autres critères. La classe QGeoRouteRequest est utilisée pour spécifier ces informations.
Si supportsRouteUpdates() renvoie true, le QGeoRoutingManager prend en charge la mise à jour des informations relatives à l'itinéraire en fonction des mises à jour de la position. Les estimations de temps de parcours et de distance seront alors mises à jour, et les QGeoRouteSegments déjà parcourus seront supprimés de l'itinéraire.
Les mises à jour peuvent être déclenchées par la fonction updateRoute(), qui utilise les instances QGeoPositionInfo émises en tant que mises à jour de position par QGeoPositionInfoSource.
Les instances de QGeoRoutingManager sont accessibles avec QGeoServiceProvider::routingManager().
Un petit exemple d'utilisation de QGeoRoutingManager et de QGeoRouteRequests suit :
class RouteHandler : public QObject { Q_OBJECT public: RouteHandler(QGeoRoutingManager *routingManager, const QGeoCoordinate &origin, const QGeoCoordinate &destination) { QGeoRouteRequest request(origin, destination); // The request defaults to the fastest route by car, which is // equivalent to: // request.setTravelMode(QGeoRouteRequest::CarTravel); // request.setRouteOptimization(QGeoRouteRequest::FastestRoute); request.setAvoidFeatureTypes(QGeoRouteRequest::AvoidTolls); request.setAvoidFeatureTypes(QGeoRouteRequest::AvoidMotorPoolLanes); QGeoRouteRequest::AvoidFeaturesTypes avoidableFeatures = routingManager->supportedAvoidFeatureTypes(); if (!(avoidableFeatures & request.avoidFeatureTypes())) { // ... inform the user that the routing manager does not // provide support for avoiding tolls and/or motor pool lanes ... return; } QGeoRouteReply *reply = routingManager->calculateRoute(request); if (reply->isFinished()) { if (reply->error() == QGeoRouteReply::NoError) { routeCalculated(reply); } else { routeError(reply, reply->error(), reply->errorString()); } return; } connect(routingManager, &QGeoRoutingManager::finished, this, &RouteHandler::routeCalculated); connect(routingManager, &QGeoRoutingManager::errorOccurred, this, &RouteHandler::routeError); } private slots: void routeCalculated(QGeoRouteReply *reply) { // A route request can ask for several alternative routes ... if (reply->routes().size() != 0) { // ... but by default it will only get a single route QGeoRoute route = reply->routes().at(0); //... now we have to make use of the route ... } reply->deleteLater(); } void routeError(QGeoRouteReply *reply, QGeoRouteReply:Error error, const QString &errorString) { // ... inform the user that an error has occurred ... reply->deleteLater(); } };
Fonction membre Documentation
[virtual noexcept] QGeoRoutingManager::~QGeoRoutingManager()
Détruit ce gestionnaire.
QGeoRouteReply *QGeoRoutingManager::calculateRoute(const QGeoRouteRequest &request)
Commence le calcul de l'itinéraire spécifié par request.
Un objet QGeoRouteReply sera renvoyé, qui peut être utilisé pour gérer l'opération de routage et renvoyer les résultats de l'opération.
Ce gestionnaire et l'objet QGeoRouteReply 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, QGeoRouteReply::routes peut être utilisé pour récupérer l'itinéraire ou les itinéraires calculés.
Si request comprend des caractéristiques qui ne sont pas prises en charge par ce gestionnaire, comme le signalent les méthodes de ce gestionnaire, un message QGeoRouteReply::UnsupportedOptionError est émis.
L'utilisateur est responsable de la suppression de l'objet de réponse renvoyé, bien que cela puisse être fait dans le slot connecté à QGeoRoutingManager::finished(), QGeoRoutingManager::errorOccurred(), QGeoRouteReply::finished() ou QGeoRouteReply::errorOccurred() avec deleteLater().
[signal] void QGeoRoutingManager::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::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 QGeoRoutingManager::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 QGeoRouteReply::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 QGeoRoutingManager::finished(QGeoRouteReply *reply)
Ce signal est émis lorsque reply a terminé le traitement.
Si reply::error() est égal à QGeoRouteReply::NoError, le traitement s'est terminé avec succès.
Ce signal et QGeoRouteReply::finished() seront émis en même temps.
Remarque : ne supprimez pas l'objet reply dans le slot connecté à ce signal. Utilisez plutôt deleteLater().
QLocale QGeoRoutingManager::locale() const
Renvoie la locale utilisée pour indiquer à ce gestionnaire de routage la langue à utiliser pour les adresses et les instructions.
Voir aussi setLocale().
QString QGeoRoutingManager::managerName() const
Renvoie le nom du moteur qui implémente le comportement de ce gestionnaire de routage.
La combinaison de managerName() et managerVersion() doit être unique parmi les implémentations du plugin.
int QGeoRoutingManager::managerVersion() const
Renvoie la version du moteur qui implémente le comportement de ce gestionnaire de routines.
La combinaison de managerName() et managerVersion() doit être unique parmi les implémentations du plugin.
QLocale::MeasurementSystem QGeoRoutingManager::measurementSystem() const
Renvoie le système de mesure utilisé par ce gestionnaire.
Si setMeasurementSystem() a été appelé, la valeur renvoyée par cette fonction peut être différente de celle renvoyée par locale().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 QGeoRoutingManager::setLocale(const QLocale &locale)
Définit la locale à utiliser par ce gestionnaire à 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.
La locale utilisée est par défaut la locale du système si elle n'est pas définie.
Voir également locale().
void QGeoRoutingManager::setMeasurementSystem(QLocale::MeasurementSystem system)
Définit le système de mesure utilisé par ce gestionnaire à system.
Le système de mesure peut être défini indépendamment de la locale. Tant setLocale() que cette fonction définissent le système de mesure. La valeur définie par la dernière fonction appelée sera utilisée.
Voir également measurementSystem(), locale() et setLocale().
QGeoRouteRequest::FeatureTypes QGeoRoutingManager::supportedFeatureTypes() const
Renvoie les types de caractéristiques que ce gestionnaire peut prendre en compte lors de la planification de l'itinéraire.
QGeoRouteRequest::FeatureWeights QGeoRoutingManager::supportedFeatureWeights() const
Renvoie les pondérations que ce gestionnaire peut appliquer aux différentes caractéristiques lors de la planification de l'itinéraire.
QGeoRouteRequest::ManeuverDetails QGeoRoutingManager::supportedManeuverDetails() const
Renvoie les niveaux de détail des manœuvres de navigation qui peuvent être demandés par ce gestionnaire.
QGeoRouteRequest::RouteOptimizations QGeoRoutingManager::supportedRouteOptimizations() const
Renvoie les optimisations d'itinéraires prises en charge par ce gestionnaire.
QGeoRouteRequest::SegmentDetails QGeoRoutingManager::supportedSegmentDetails() const
Renvoie les niveaux de détail des segments de routage qui peuvent être demandés à ce gestionnaire.
QGeoRouteRequest::TravelModes QGeoRoutingManager::supportedTravelModes() const
Renvoie les modes de déplacement pris en charge par ce gestionnaire.
QGeoRouteReply *QGeoRoutingManager::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
Commence le processus de mise à jour de route sur la base de la position actuelle position.
Un objet QGeoRouteReply sera renvoyé, qui peut être utilisé pour gérer l'opération de routage et renvoyer les résultats de l'opération.
Ce gestionnaire et l'objet QGeoRouteReply renvoyé émettront des signaux indiquant si l'opération est terminée ou si des erreurs se produisent.
Si supportsRouteUpdates() renvoie false, un message QGeoRouteReply::UnsupportedOptionError sera émis.
Une fois l'opération terminée, 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 original, en particulier si position est éloigné de l'itinéraire initial. Dans le cas contraire, l'itinéraire sera similaire, mais le temps et la distance restants seront mis à jour et les segments de l'itinéraire initial qui ont été parcourus seront supprimés.
L'utilisateur est responsable de la suppression de l'objet de réponse renvoyé, bien que cela puisse être fait dans le slot connecté à QGeoRoutingManager::finished(), QGeoRoutingManager::errorOccurred(), QGeoRouteReply::finished() ou QGeoRouteReply::errorOccurred() avec 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.