Auf dieser Seite

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 &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)

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 &parameters, 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.