QGeoRoutingManagerEngine Class
Die Klasse „QGeoRoutingManagerEngine“ bietet eine Schnittstelle und Komfortmethoden für Entwickler von „ QGeoServiceProvider “-Plugins, die Zugriff auf geografische Routeninformationen bereitstellen möchten. 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) |
Ausführliche Beschreibung
Hinweis: Es gibt keine Garantien hinsichtlich der Quellcode- oder Binärkompatibilität für die Backend-Klassen. Die API funktioniert garantiert nur mit der Qt-Version, für die sie entwickelt wurde. API-Änderungen werden jedoch nur in Minor-Releases vorgenommen (6.6, 6.7 usw.).
Unterklassen von `QGeoRoutingManagerEngine` müssen eine Implementierung von ` calculateRoute()` bereitstellen.
In der Standardimplementierung gibt `supportsRouteUpdates()` den Wert `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 zu einem beliebigen Zeitpunkt vor dem Aufruf von ` updateRoute()` die Methode `setSupportsRouteUpdates(true)` aufrufen.
Die Funktion `setSupportsRouteUpdates()` ist eine von mehreren Funktionen, die die gemeldeten Fähigkeiten der Engine 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 geschieht, bevor ` calculateRoute()`, ` updateRoute()` oder eine der Funktionen zur Meldung von Fähigkeiten verwendet werden, um ein fehlerhaftes oder inkonsistentes Verhalten zu vermeiden.
Eine Unterklasse von `QGeoRouteManagerEngine` nutzt intern häufig eine Unterklasse von ` QGeoRouteReply `, um den von der Engine verwendeten ` QGeoRouteReply `-Instanzen enginespezifische Daten (wie beispielsweise ein ` QNetworkReply `-Objekt für netzwerkbasierte Dienste) hinzuzufügen.
Siehe auch „ QGeoRoutingManager “.
Dokumentation der Mitgliedsfunktionen
[explicit] QGeoRoutingManagerEngine::QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr)
Erstellt eine neue Engine mit dem angegebenen ` parent` und verwendet dabei ` parameters `, um implementierungsspezifische Daten an die Engine zu übergeben.
[virtual noexcept] QGeoRoutingManagerEngine::~QGeoRoutingManagerEngine()
Das zerstört diesen Motor.
[pure virtual] QGeoRouteReply *QGeoRoutingManagerEngine::calculateRoute(const QGeoRouteRequest &request)
Startet die Berechnung der durch ` request` angegebenen Route.
Es wird ein „ QGeoRouteReply “-Objekt zurückgegeben, mit dem der Routing-Vorgang verwaltet und dessen Ergebnisse zurückgegeben werden können.
Diese Engine und das zurückgegebene „ QGeoRouteReply “-Objekt senden 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 Route oder die berechneten Routen abzurufen.
Wenn „ request “ Funktionen enthält, die von dieser Engine nicht unterstützt werden – wie durch die Methoden dieser Engine gemeldet –, tritt ein „ QGeoRouteReply::UnsupportedOptionError “ auf.
Der Benutzer ist dafür verantwortlich, das zurückgegebene Antwortobjekt zu löschen; dies kann jedoch im Slot erfolgen, der mit QGeoRoutingManagerEngine::finished(), QGeoRoutingManagerEngine::errorOccurred(), QGeoRouteReply::finished() oder QGeoRouteReply::errorOccurred() über deleteLater() verbunden ist.
[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 festgestellt wurde. Das Signal ` QGeoRoutingManagerEngine::finished()` wird wahrscheinlich folgen.
Der Fehler wird durch den Fehlercode ` error` beschrieben. Ist ` errorString ` nicht leer, enthält es eine textuelle Beschreibung des Fehlers.
Dieses Signal und QGeoRouteReply::errorOccurred() werden gleichzeitig ausgegeben.
Hinweis: LöschenSie das Objekt „ reply “ nicht in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen „ deleteLater()“.
[signal] void QGeoRoutingManagerEngine::finished(QGeoRouteReply *reply)
Dieses Signal wird ausgelöst, wenn die Verarbeitung von „ reply “ abgeschlossen ist.
Wenn reply::error() gleich QGeoRouteReply::NoError ist, wurde die Verarbeitung erfolgreich abgeschlossen.
Dieses Signal und „ QGeoRouteReply::finished()“ werden gleichzeitig ausgelöst.
Hinweis: LöschenSie das ` reply `-Objekt nicht im mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen ` deleteLater()`.
QLocale QGeoRoutingManagerEngine::locale() const
Gibt die Locale zurück, anhand derer diesem Routing-Manager mitgeteilt wird, welche Sprache für Adressen und Anweisungen verwendet werden soll.
Siehe auch „ setLocale()“.
QString QGeoRoutingManagerEngine::managerName() const
Gibt den Namen zurück, den diese Engine-Implementierung verwendet, um sich von den Implementierungen anderer Plugins zu unterscheiden.
Die Kombination aus `managerName()` und ` managerVersion()` sollte unter den Plugin-Implementierungen eindeutig sein.
int QGeoRoutingManagerEngine::managerVersion() const
Gibt die Version dieser Engine-Implementierung zurück.
Die Kombination aus ` managerName()` und `managerVersion()` sollte innerhalb der Plugin-Implementierungen eindeutig sein.
QLocale::MeasurementSystem QGeoRoutingManagerEngine::measurementSystem() const
Gibt das von diesem Manager verwendete Maßsystem zurück.
Wenn „ setMeasurementSystem()“ aufgerufen wurde, kann der von dieser Funktion zurückgegebene Wert von dem abweichen, der von „ locale()“ oder „measurementSystem()“ zurückgegeben wird. 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)
Legt die von diesem Manager zu verwendende Ländereinstellung auf locale fest.
Wenn dieser Routing-Manager die Ausgabe von Adressen und Anweisungen in verschiedenen Sprachen unterstützt, werden diese in der Sprache von „ locale “ ausgegeben.
Ist die Locale nicht festgelegt, wird standardmäßig die System-Locale verwendet.
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 von der Locale festgelegt werden. Sowohl ` setLocale()` als auch diese Funktion legen das Maßsystem fest. Es wird der Wert verwendet, der durch die zuletzt aufgerufene Funktion festgelegt wurde.
Siehe auch measurementSystem(), locale() und setLocale().
[protected] void QGeoRoutingManagerEngine::setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)
Legt die Arten von Objekten fest, die diese Engine bei der Routenplanung berücksichtigen kann ( featureTypes).
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wird diese Funktion nicht verwendet, meldet die Engine, dass sie überhaupt keine Objektarten unterstützt.
Siehe auch supportedFeatureTypes().
[protected] void QGeoRoutingManagerEngine::setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)
Legt die Gewichtungen fest, die diese Engine bei der Routenplanung auf verschiedene Merkmale anwenden kann ( featureWeights).
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wird diese Funktion nicht verwendet, meldet die Engine, dass sie überhaupt keine Merkmalsgewichtungen unterstützt.
Siehe auch supportedFeatureWeights().
[protected] void QGeoRoutingManagerEngine::setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)
Legt den Detaillierungsgrad für Navigationsmanöver fest, die von dieser Engine an „ maneuverDetails “ angefordert werden können.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wird diese Funktion nicht verwendet, meldet die Engine, dass sie keinerlei Manöverdetaillierungen unterstützt.
Siehe auch supportedManeuverDetails().
[protected] void QGeoRoutingManagerEngine::setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)
Legt die von dieser Engine unterstützten Routenoptimierungen auf „ optimizations “ fest.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wird diese Funktion nicht verwendet, meldet die Engine, dass sie überhaupt keine Routenoptimierungen unterstützt.
Siehe auch ` supportedRouteOptimizations()`.
[protected] void QGeoRoutingManagerEngine::setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)
Legt den Detaillierungsgrad für Routing-Segmente fest, der von dieser Engine an segmentDetails angefordert werden kann.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wird diese Funktion nicht verwendet, meldet die Engine, dass sie keinerlei Segmentdetails unterstützt.
Siehe auch supportedSegmentDetails().
[protected] void QGeoRoutingManagerEngine::setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)
Legt die von dieser Engine unterstützten Fahrmodi auf „ travelModes “ fest.
Es ist wichtig, dass Unterklassen diese Methode verwenden, um sicherzustellen, dass die Engine ihre Fähigkeiten korrekt meldet. Wird diese Funktion nicht verwendet, meldet die Engine, dass sie überhaupt keine Reisemodi unterstützt.
Siehe auch ` supportedTravelModes()`.
QGeoRouteRequest::FeatureTypes QGeoRoutingManagerEngine::supportedFeatureTypes() const
Gibt die Arten von Objekten zurück, die diese Engine bei der Routenplanung berücksichtigen kann.
Siehe auch „ setSupportedFeatureTypes()“.
QGeoRouteRequest::FeatureWeights QGeoRoutingManagerEngine::supportedFeatureWeights() const
Gibt die Gewichtungen zurück, die diese Engine bei der Routenplanung auf verschiedene Merkmale anwenden kann.
Siehe auch „ setSupportedFeatureWeights()“.
QGeoRouteRequest::ManeuverDetails QGeoRoutingManagerEngine::supportedManeuverDetails() const
Gibt die Detailebenen 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 Routenabschnitte zurück, die von dieser Engine angefordert werden können.
Siehe auch „ setSupportedSegmentDetails()“.
QGeoRouteRequest::TravelModes QGeoRoutingManagerEngine::supportedTravelModes() const
Gibt die von dieser Engine unterstützten Fortbewegungsarten zurück.
Siehe auch „ setSupportedTravelModes()“.
[virtual] QGeoRouteReply *QGeoRoutingManagerEngine::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
Leitet den Vorgang zur Aktualisierung von ` route ` auf Basis der aktuellen Position ` position` ein.
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 senden Signale aus, die anzeigen, ob der Vorgang erfolgreich abgeschlossen wurde oder ob Fehler aufgetreten sind.
Wenn supportsRouteUpdates() den Wert „false“ zurückgibt, wird ein „ QGeoRouteReply::UnsupportedOptionError “ ausgelöst.
Sobald der Vorgang abgeschlossen ist, kann mit ` QGeoRouteReply::routes ` die aktualisierte Route abgerufen werden.
Die zurückgegebene Route kann sich vollständig von der ursprünglichen Route unterscheiden, insbesondere wenn „ position “ weit genug von der ursprünglichen Route entfernt liegt. Andernfalls ist die Route ähnlich, allerdings werden die verbleibende Zeit und die Entfernung aktualisiert und bereits zurückgelegte Abschnitte der ursprünglichen Route entfernt.
Der Nutzer ist dafür verantwortlich, das zurückgegebene Antwortobjekt zu löschen; dies kann jedoch im Slot erfolgen, der mit „ QGeoRoutingManagerEngine::finished()“, „ QGeoRoutingManagerEngine::errorOccurred()“, „ QGeoRouteReply::finished()“ oder „ QGeoRouteReply::errorOccurred()“ über „ deleteLater()“ verbunden ist.
© 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.