QGeoRoutingManagerEngine Class
Die Klasse QGeoRoutingManagerEngine bietet eine Schnittstelle und Komfortmethoden für Implementierer von QGeoServiceProvider Plugins, die Zugang zu geographischen Routing-Informationen bieten wollen. Mehr...
Header: | #include <QGeoRoutingManagerEngine> |
qmake: | QT += location |
Inherits: | QObject |
Öffentliche Funktionen
QGeoRoutingManagerEngine(const QVariantMap ¶meters, 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) |
Signale
void | errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString()) |
void | finished(QGeoRouteReply *reply) |
Geschützte Funktionen
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) |
Detaillierte Beschreibung
Hinweis: Es gibt keine Garantien für die Quell- oder Binärkompatibilität der Backend-Klassen. Die API funktioniert garantiert nur mit der Qt-Version, für die sie entwickelt wurde. API-Änderungen werden jedoch nur in kleineren Versionen vorgenommen. (6.6, 6.7, und so weiter.)
Unterklassen von QGeoRoutingManagerEngine müssen eine Implementierung von calculateRoute() bereitstellen.
In der Standardimplementierung gibt supportsRouteUpdates() false zurück und updateRoute() gibt ein QGeoRouteReply Objekt zurück, das ein QGeoRouteReply::UnsupportedOptionError enthält.
Wenn der Routing-Dienst die Aktualisierung von Routen während der Fahrt unterstützt, sollte die Unterklasse eine Implementierung von updateRoute() bereitstellen und setSupportsRouteUpdates(true) zu einem bestimmten Zeitpunkt aufrufen, bevor updateRoute() aufgerufen wird.
Die Funktion setSupportsRouteUpdates() ist eine von mehreren Funktionen, die die gemeldeten Fähigkeiten der Lokomotive konfigurieren. Wenn die Fähigkeiten einer Engine von den Standardwerten abweichen, sollten diese Funktionen verwendet werden, damit die gemeldeten Fähigkeiten korrekt sind.
Es ist wichtig, dass dies vor der Verwendung von calculateRoute(), updateRoute() oder einer der Funktionen zur Meldung von Fähigkeiten geschieht, um falsches oder inkonsistentes Verhalten zu vermeiden.
Eine Unterklasse von QGeoRouteManagerEngine wird intern oft eine Unterklasse von QGeoRouteReply verwenden, um den QGeoRouteReply Instanzen, die von der Engine verwendet werden, alle engine-spezifischen Daten hinzuzufügen (wie z.B. ein QNetworkReply Objekt für netzwerkbasierte Dienste).
Siehe auch QGeoRoutingManager.
Dokumentation der Mitgliedsfunktionen
[explicit]
QGeoRoutingManagerEngine::QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr)
Konstruiert einen neuen Motor mit dem angegebenen parent und verwendet parameters, um alle implementierungsspezifischen Daten an den Motor zu übergeben.
[virtual noexcept]
QGeoRoutingManagerEngine::~QGeoRoutingManagerEngine()
Zerstört diesen Motor.
[pure virtual]
QGeoRouteReply *QGeoRoutingManagerEngine::calculateRoute(const QGeoRouteRequest &request)
Beginnt die Berechnung der durch request angegebenen Route.
Es wird ein Objekt QGeoRouteReply zurückgegeben, das zur Verwaltung des Routing-Vorgangs und zur Rückgabe der Ergebnisse des Vorgangs verwendet werden kann.
Diese Engine und das zurückgegebene Objekt QGeoRouteReply geben Signale aus, die anzeigen, ob der Vorgang abgeschlossen wurde oder ob Fehler aufgetreten sind.
Sobald der Vorgang abgeschlossen ist, kann QGeoRouteReply::routes verwendet werden, um die berechnete(n) Route(n) abzurufen.
Wenn request Funktionen enthält, die von dieser Engine nicht unterstützt werden, wie von den Methoden in dieser Engine gemeldet, dann wird QGeoRouteReply::UnsupportedOptionError angezeigt.
Der Benutzer ist für das Löschen des zurückgegebenen Antwortobjekts verantwortlich, obwohl dies in dem mit QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() oder QGeoRouteReply::errorOccurred() verbundenen Slot mit deleteLater() erfolgen kann.
[signal]
void QGeoRoutingManagerEngine::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString())
Dieses Signal wird ausgegeben, wenn bei der Verarbeitung von reply ein Fehler aufgetreten ist. Wahrscheinlich wird das Signal QGeoRoutingManagerEngine::finished() folgen.
Der Fehler wird durch den Fehlercode error beschrieben. Wenn errorString nicht leer ist, enthält es eine textuelle Beschreibung des Fehlers.
Dieses Signal und QGeoRouteReply::errorOccurred() werden zur gleichen Zeit ausgegeben.
Hinweis: Löschen Sie nicht das Objekt reply in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen deleteLater().
[signal]
void QGeoRoutingManagerEngine::finished(QGeoRouteReply *reply)
Dieses Signal wird ausgegeben, wenn reply die Verarbeitung abgeschlossen hat.
Wenn reply::error() gleich QGeoRouteReply::NoError ist, wurde die Verarbeitung erfolgreich abgeschlossen.
Dieses Signal und QGeoRouteReply::finished() werden zur gleichen Zeit ausgegeben.
Hinweis: Löschen Sie nicht das Objekt reply in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen deleteLater().
QLocale QGeoRoutingManagerEngine::locale() const
Gibt das Gebietsschema zurück, das verwendet wird, um diesem Routing-Manager mitzuteilen, welche Sprache für Adressen und Anweisungen zu verwenden ist.
Siehe auch setLocale().
QString QGeoRoutingManagerEngine::managerName() const
Gibt den Namen zurück, den diese Motorimplementierung verwendet, um sich von den Implementierungen anderer Plugins zu unterscheiden.
Die Kombination aus managerName() und managerVersion() sollte bei Plugin-Implementierungen eindeutig sein.
int QGeoRoutingManagerEngine::managerVersion() const
Gibt die Version dieser Engine-Implementierung zurück.
Die Kombination aus managerName() und managerVersion() sollte bei Plugin-Implementierungen eindeutig sein.
QLocale::MeasurementSystem QGeoRoutingManagerEngine::measurementSystem() const
Gibt das von diesem Manager verwendete Maßsystem zurück.
Wenn setMeasurementSystem() aufgerufen wurde, kann sich der von dieser Funktion zurückgegebene Wert von dem unterscheiden, der von locale() zurückgegeben wird.measurementSystem(). In diesem Fall ist der von dieser Funktion zurückgegebene Wert derjenige, der vom Manager verwendet wird.
Siehe auch setMeasurementSystem() und setLocale().
void QGeoRoutingManagerEngine::setLocale(const QLocale &locale)
Setzt das von diesem Manager zu verwendende Gebietsschema auf locale.
Wenn dieser Routing-Manager die Rückgabe von Adressen und Anweisungen in verschiedenen Sprachen unterstützt, werden sie in der Sprache von locale zurückgegeben.
Das verwendete Gebietsschema ist standardmäßig das Systemgebietsschema, wenn dies nicht festgelegt ist.
Siehe auch locale().
void QGeoRoutingManagerEngine::setMeasurementSystem(QLocale::MeasurementSystem system)
Setzt das von diesem Manager verwendete Maßsystem auf system.
Das Maßsystem kann unabhängig vom Gebietsschema eingestellt werden. Sowohl setLocale() als auch diese Funktion setzen das Maßsystem. Es wird der Wert verwendet, der von der zuletzt aufgerufenen Funktion gesetzt wurde.
Siehe auch measurementSystem(), locale(), und setLocale().
[protected]
void QGeoRoutingManagerEngine::setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)
Setzt die Arten von Merkmalen, die diese Engine bei der Routenplanung berücksichtigen kann, auf featureTypes.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wenn diese Funktion nicht verwendet wird, meldet die Engine, dass sie überhaupt keine Feature-Typen unterstützt.
Siehe auch supportedFeatureTypes().
[protected]
void QGeoRoutingManagerEngine::setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)
Setzt die Gewichtungen, die diese Engine bei der Routenplanung auf verschiedene Merkmale anwenden kann, auf featureWeights.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wenn diese Funktion nicht verwendet wird, meldet die Engine, dass sie überhaupt keine Merkmalsgewichtungen unterstützt.
Siehe auch supportedFeatureWeights().
[protected]
void QGeoRoutingManagerEngine::setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)
Setzt die Detailstufen für Navigationsmanöver, die von dieser Engine angefordert werden können, auf maneuverDetails.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wenn diese Funktion nicht verwendet wird, meldet die Engine, dass sie keine Manöverdetails unterstützt.
Siehe auch supportedManeuverDetails().
[protected]
void QGeoRoutingManagerEngine::setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)
Setzt die von dieser Engine unterstützten Routenoptimierungen auf optimizations.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wenn diese Funktion nicht verwendet wird, meldet die Engine, dass sie überhaupt keine Routenoptimierungen unterstützt.
Siehe auch supportedRouteOptimizations().
[protected]
void QGeoRoutingManagerEngine::setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)
Setzt die Detailstufen für Routing-Segmente, die von dieser Engine angefordert werden können, auf segmentDetails.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wenn diese Funktion nicht verwendet wird, meldet die Engine, dass sie keinerlei Segmentdetails unterstützt.
Siehe auch supportedSegmentDetails().
[protected]
void QGeoRoutingManagerEngine::setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)
Setzt die von diesem Motor unterstützten Fahrmodi auf travelModes.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Lokomotive ihre Fähigkeiten korrekt meldet. Wenn diese Funktion nicht verwendet wird, meldet der Motor, dass er überhaupt keine Fahrmodi unterstützt.
Siehe auch supportedTravelModes().
QGeoRouteRequest::FeatureTypes QGeoRoutingManagerEngine::supportedFeatureTypes() const
Gibt die Arten von Merkmalen zurück, die diese Maschine bei der Routenplanung berücksichtigen kann.
Siehe auch setSupportedFeatureTypes().
QGeoRouteRequest::FeatureWeights QGeoRoutingManagerEngine::supportedFeatureWeights() const
Gibt die Gewichtungen zurück, die diese Maschine bei der Routenplanung auf verschiedene Merkmale anwenden kann.
Siehe auch setSupportedFeatureWeights().
QGeoRouteRequest::ManeuverDetails QGeoRoutingManagerEngine::supportedManeuverDetails() const
Gibt die Detailstufen für Navigationsmanöver zurück, die von dieser Engine angefordert werden können.
Siehe auch setSupportedManeuverDetails().
QGeoRouteRequest::RouteOptimizations QGeoRoutingManagerEngine::supportedRouteOptimizations() const
Gibt die von dieser Engine unterstützten Routenoptimierungen zurück.
Siehe auch setSupportedRouteOptimizations().
QGeoRouteRequest::SegmentDetails QGeoRoutingManagerEngine::supportedSegmentDetails() const
Gibt die Detailstufen für Routing-Segmente zurück, die von dieser Engine angefordert werden können.
Siehe auch setSupportedSegmentDetails().
QGeoRouteRequest::TravelModes QGeoRoutingManagerEngine::supportedTravelModes() const
Gibt die von diesem Motor unterstützten Reisemodi zurück.
Siehe auch setSupportedTravelModes().
[virtual]
QGeoRouteReply *QGeoRoutingManagerEngine::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
Beginnt den Prozess der Aktualisierung von route auf der Grundlage der aktuellen Position position.
Es wird ein QGeoRouteReply Objekt zurückgegeben, das zur Verwaltung des Routing-Vorgangs und zur Rückgabe der Ergebnisse des Vorgangs verwendet werden kann.
Diese Engine und das zurückgegebene QGeoRouteReply Objekt geben Signale aus, die anzeigen, ob der Vorgang abgeschlossen wurde oder ob Fehler aufgetreten sind.
Wenn supportsRouteUpdates() den Wert false zurückgibt, wird ein QGeoRouteReply::UnsupportedOptionError ausgegeben.
Sobald der Vorgang abgeschlossen ist, kann QGeoRouteReply::routes verwendet werden, um die aktualisierte Route abzurufen.
Die zurückgegebene Route könnte sich von der ursprünglichen Route völlig unterscheiden, insbesondere wenn position weit genug von der ursprünglichen Route entfernt ist. Andernfalls wird die Route ähnlich sein, obwohl die verbleibende Zeit und die Entfernung aktualisiert werden und alle Segmente der ursprünglichen Route, die durchquert wurden, entfernt werden.
Der Benutzer ist für das Löschen des zurückgegebenen Antwortobjekts verantwortlich, obwohl dies in dem mit QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() oder QGeoRouteReply::errorOccurred() verbundenen Slot mit deleteLater() geschehen kann.
© 2025 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.