QGeoRoutingManager Class
La clase QGeoRoutingManager proporciona soporte para operaciones de enrutamiento geográfico. Más...
| Header: | #include <QGeoRoutingManager> |
| qmake: | QT += location |
| Inherits: | QObject |
Funciones Públicas
| 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) |
Señales
| void | errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString()) |
| void | finished(QGeoRouteReply *reply) |
Descripción detallada
Los métodos calculateRoute() y updateRoute() funcionan con los objetos QGeoRouteReply, que gestionan estas operaciones e informan del resultado de las mismas y de los errores que se hayan podido producir.
La función calculateRoute() se utiliza para encontrar una ruta (o rutas) que siga un conjunto de waypoints y cumpla otros criterios diversos. La clase QGeoRouteRequest se utiliza para especificar esta información.
Si supportsRouteUpdates() devuelve true entonces el QGeoRoutingManager soporta la actualización de la información de ruta basada en actualizaciones de posición. Esto hará que el tiempo de viaje y las estimaciones de distancia se actualicen, y cualquier QGeoRouteSegments ya atravesado se elimine de la ruta.
Las actualizaciones pueden activarse con la función updateRoute(), que hace uso de las instancias QGeoPositionInfo emitidas como actualizaciones de posición por QGeoPositionInfoSource.
Se puede acceder a las instancias de QGeoRoutingManager con QGeoServiceProvider::routingManager().
A continuación se muestra un pequeño ejemplo del uso de QGeoRoutingManager y QGeoRouteRequests:
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(); } };
Documentación de las funciones miembro
[virtual noexcept] QGeoRoutingManager::~QGeoRoutingManager()
Destruye a este gerente.
QGeoRouteReply *QGeoRoutingManager::calculateRoute(const QGeoRouteRequest &request)
Inicia el cálculo de la ruta especificada por request.
Se devolverá un objeto QGeoRouteReply, que puede utilizarse para gestionar la operación de enrutamiento y para devolver los resultados de la operación.
Este gestor y el objeto QGeoRouteReply devuelto emitirán señales indicando si la operación se completa o si se producen errores.
Una vez completada la operación, QGeoRouteReply::routes puede utilizarse para recuperar la ruta o rutas calculadas.
Si request incluye características que no son soportadas por este gestor, tal y como informan los métodos de este gestor, se producirá un QGeoRouteReply::UnsupportedOptionError.
El usuario es responsable de borrar el objeto de respuesta devuelto, aunque esto puede hacerse en la ranura conectada a QGeoRoutingManager::finished(), QGeoRoutingManager::errorOccurred(), QGeoRouteReply::finished() o QGeoRouteReply::errorOccurred() con deleteLater().
[signal] void QGeoRoutingManager::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString())
Esta señal se emite cuando se ha detectado un error en el procesamiento de reply. Probablemente le seguirá la señal QGeoRoutingManager::finished() .
El error se describirá mediante el código de error error. Si errorString no está vacío, contendrá una descripción textual del error.
Esta señal y QGeoRouteReply::errorOccurred() se emitirán al mismo tiempo.
Nota: No elimine el objeto reply de la ranura conectada a esta señal. Utilice deleteLater() en su lugar.
[signal] void QGeoRoutingManager::finished(QGeoRouteReply *reply)
Esta señal se emite cuando reply ha finalizado el procesamiento.
Si reply::error() es igual a QGeoRouteReply::NoError entonces el procesamiento ha finalizado correctamente.
Esta señal y QGeoRouteReply::finished() se emitirán al mismo tiempo.
Nota: No elimine el objeto reply en la ranura conectada a esta señal. Utilice deleteLater() en su lugar.
QLocale QGeoRoutingManager::locale() const
Devuelve la configuración regional utilizada para indicar a este gestor de enrutamiento qué idioma utilizar para las direcciones e instrucciones.
Véase también setLocale().
QString QGeoRoutingManager::managerName() const
Devuelve el nombre del motor que implementa el comportamiento de este gestor de enrutamiento.
La combinación de managerName() y managerVersion() debe ser única entre las implementaciones del complemento.
int QGeoRoutingManager::managerVersion() const
Devuelve la versión del motor que implementa el comportamiento de este gestor de rutinas.
La combinación de managerName() y managerVersion() debe ser única entre las implementaciones del plugin.
QLocale::MeasurementSystem QGeoRoutingManager::measurementSystem() const
Devuelve el sistema de medida utilizado por este gestor.
Si se ha llamado a setMeasurementSystem() entonces el valor devuelto por esta función puede ser diferente al devuelto por locale().measurementSystem(). En cuyo caso el valor devuelto por esta función es el que utilizará el gestor.
Véase también setMeasurementSystem() y setLocale().
void QGeoRoutingManager::setLocale(const QLocale &locale)
Establece la configuración regional que utilizará este gestor en locale.
Si este gestor de enrutamiento admite la devolución de direcciones e instrucciones en diferentes idiomas, se devolverán en el idioma de locale.
Si no se establece, la configuración regional utilizada será por defecto la del sistema.
Véase también locale().
void QGeoRoutingManager::setMeasurementSystem(QLocale::MeasurementSystem system)
Establece el sistema de medición utilizado por este gestor en system.
El sistema de medida puede establecerse independientemente de la configuración regional. Tanto setLocale() como esta función establecen el sistema de medida. Se utilizará el valor establecido por la última función llamada.
Véase también measurementSystem(), locale(), y setLocale().
QGeoRouteRequest::FeatureTypes QGeoRoutingManager::supportedFeatureTypes() const
Devuelve los tipos de características que este gestor puede tener en cuenta durante la planificación de la ruta.
QGeoRouteRequest::FeatureWeights QGeoRoutingManager::supportedFeatureWeights() const
Devuelve las ponderaciones que este gestor puede aplicar a las distintas características durante la planificación de la ruta.
QGeoRouteRequest::ManeuverDetails QGeoRoutingManager::supportedManeuverDetails() const
Devuelve los niveles de detalle de las maniobras de navegación que puede solicitar este gestor.
QGeoRouteRequest::RouteOptimizations QGeoRoutingManager::supportedRouteOptimizations() const
Devuelve las optimizaciones de ruta soportadas por este gestor.
QGeoRouteRequest::SegmentDetails QGeoRoutingManager::supportedSegmentDetails() const
Devuelve los niveles de detalle de los segmentos de enrutamiento que se pueden solicitar con este gestor.
QGeoRouteRequest::TravelModes QGeoRoutingManager::supportedTravelModes() const
Devuelve los modos de viaje soportados por este gestor.
QGeoRouteReply *QGeoRoutingManager::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
Inicia el proceso de actualización de route basado en la posición actual position.
Se devolverá un objeto QGeoRouteReply, que puede utilizarse para gestionar la operación de enrutamiento y para devolver los resultados de la operación.
Este gestor y el objeto QGeoRouteReply devuelto emitirán señales indicando si la operación se completa o si se producen errores.
Si supportsRouteUpdates() devuelve false se producirá un QGeoRouteReply::UnsupportedOptionError.
Una vez completada la operación, se puede utilizar QGeoRouteReply::routes para recuperar la ruta actualizada.
La ruta devuelta podría ser completamente diferente a la ruta original, especialmente si position está lejos de la ruta inicial. En caso contrario, la ruta será similar, aunque se actualizarán el tiempo y la distancia restantes y se eliminarán los segmentos de la ruta original que se hayan recorrido.
El usuario es responsable de borrar el objeto de respuesta devuelto, aunque esto puede hacerse en la ranura conectada a QGeoRoutingManager::finished(), QGeoRoutingManager::errorOccurred(), QGeoRouteReply::finished() o QGeoRouteReply::errorOccurred() con 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.