QGeoCodingManagerEngine Class
Die Klasse „QGeoCodingManagerEngine“ bietet eine Schnittstelle und Hilfsmethoden für Entwickler von „ QGeoServiceProvider “-Plugins, die Unterstützung für Geokodierungsvorgänge bereitstellen möchten. Mehr...
| Header: | #include <QGeoCodingManagerEngine> |
| qmake: | QT += location |
| Inherits: | QObject |
Öffentliche Funktionen
| QGeoCodingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr) | |
| virtual | ~QGeoCodingManagerEngine() |
| virtual QGeoCodeReply * | geocode(const QGeoAddress &address, const QGeoShape &bounds) |
| virtual QGeoCodeReply * | geocode(const QString &address, int limit, int offset, const QGeoShape &bounds) |
| QLocale | locale() const |
| QString | managerName() const |
| int | managerVersion() const |
| virtual QGeoCodeReply * | reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds) |
| void | setLocale(const QLocale &locale) |
Signale
| void | errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString()) |
| void | finished(QGeoCodeReply *reply) |
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.)
In der Standardimplementierung geben `supportsGeocoding()` und `supportsReverseGeocoding()` den Wert `false` zurück, während ` geocode()` und ` reverseGeocode()` einen ` QGeoCodeReply::UnsupportedOptionError ` auslösen.
Wenn der Dienstanbieter Geocoding unterstützt, sollte die Unterklasse eine Implementierung von ` geocode()` bereitstellen und zu einem beliebigen Zeitpunkt vor dem Aufruf von ` geocode()` die Methode `setSupportsGeocoding(true)` aufrufen.
Ebenso sollte die Unterklasse, falls der Dienstanbieter Reverse-Geokodierung unterstützt, eine Implementierung von ` reverseGeocode()` bereitstellen und `setSupportsReverseGeocoding(true)` zu einem Zeitpunkt aufrufen, bevor ` reverseGeocode()` aufgerufen wird.
Eine Unterklasse von `QGeoCodingManagerEngine` nutzt intern häufig eine Unterklasse von ` QGeoCodeReply `, um enginespezifische Daten (wie beispielsweise ein ` QNetworkReply `-Objekt für netzwerkbasierte Dienste) zu den von der Engine verwendeten ` QGeoCodeReply `-Instanzen hinzuzufügen.
Siehe auch „ QGeoCodingManager “.
Dokumentation der Mitgliedsfunktionen
[explicit] QGeoCodingManagerEngine::QGeoCodingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr)
Erstellt eine neue Engine mit der angegebenen „ parent “ und übergibt mithilfe von „ parameters “ alle implementierungsspezifischen Daten an die Engine.
[virtual noexcept] QGeoCodingManagerEngine::~QGeoCodingManagerEngine()
Das zerstört diesen Motor.
[signal] void QGeoCodingManagerEngine::errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())
Dieses Signal wird ausgegeben, wenn bei der Verarbeitung von reply ein Fehler festgestellt wurde. Das Signal QGeoCodingManagerEngine::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 QGeoCodeReply::errorOccurred() werden gleichzeitig ausgegeben.
Hinweis: LöschenSie das Objekt „ reply “ nicht in dem mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen „ deleteLater()“.
[signal] void QGeoCodingManagerEngine::finished(QGeoCodeReply *reply)
Dieses Signal wird ausgelöst, wenn die Verarbeitung von „ reply “ abgeschlossen ist.
Wenn reply::error() gleich QGeoCodeReply::NoError ist, wurde die Verarbeitung erfolgreich abgeschlossen.
Dieses Signal und „ QGeoCodeReply::finished()“ werden gleichzeitig ausgelöst.
Hinweis: LöschenSie das reply -Objekt nicht im mit diesem Signal verbundenen Slot. Verwenden Sie stattdessen deleteLater().
[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QGeoAddress &address, const QGeoShape &bounds)
Startet die Geokodierung von address. Unter Geokodierung versteht man den Vorgang, bei dem zu einer bestimmten Adresse die entsprechenden Koordinaten ermittelt werden.
Es wird ein „ QGeoCodeReply “-Objekt zurückgegeben, mit dem sich der Geokodierungsvorgang verwalten und dessen Ergebnisse abrufen lassen.
Diese Engine und das zurückgegebene „ QGeoCodeReply “-Objekt senden Signale aus, die anzeigen, ob der Vorgang abgeschlossen wurde oder ob Fehler aufgetreten sind.
Wenn supportsGeocoding() den Wert „false“ zurückgibt, wird ein QGeoCodeReply::UnsupportedOptionError ausgelöst.
Sobald der Vorgang abgeschlossen ist, können mit ` QGeoCodeReply::locations()` die Ergebnisse abgerufen werden, die aus einer Liste von ` QGeoLocation `-Objekten bestehen. Diese Objekte stellen eine Kombination aus Koordinaten- und Adressdaten dar.
Die in den Ergebnissen zurückgegebenen Adressdaten können von ` address` abweichen. Dies tritt in der Regel auf, wenn das Backend des Geokodierungsdienstes eine andere kanonische Form von Adressen verwendet oder wenn ` address ` nur teilweise ausgefüllt wurde.
Ist bounds nicht null und ein gültiges QGeoShape, wird es verwendet, um die Ergebnisse auf diejenigen zu beschränken, die in bounds enthalten sind. Dies ist besonders nützlich, wenn address nur teilweise ausgefüllt ist, da der Dienst versuchen wird, alle Übereinstimmungen für die angegebenen Daten zu geokodieren.
Der Benutzer ist dafür verantwortlich, das zurückgegebene Antwortobjekt zu löschen; dies kann jedoch im Slot erfolgen, der mit QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() oder QGeoCodeReply::errorOccurred() über deleteLater() verbunden ist.
[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)
Startet die Geokodierung für einen Standort, der mit address übereinstimmt.
Es wird ein „ QGeoCodeReply “-Objekt zurückgegeben, mit dem sich der Geokodierungsvorgang verwalten und dessen Ergebnisse abrufen lassen.
Diese Engine und das zurückgegebene „ QGeoCodeReply “-Objekt senden Signale aus, die anzeigen, ob der Vorgang abgeschlossen wurde oder ob Fehler aufgetreten sind.
Sobald der Vorgang abgeschlossen ist, können die Ergebnisse mit ` QGeoCodeReply::locations()` abgerufen werden; diese bestehen aus einer Liste von ` QGeoLocation `-Objekten. Diese Objekte stellen eine Kombination aus Koordinaten- und Adressdaten dar.
Ist limit gleich -1, wird die gesamte Ergebnismenge zurückgegeben; andernfalls werden höchstens limit Ergebnisse zurückgegeben.
Der Parameter ` offset ` wird verwendet, um den Geokodierungsdienst anzuweisen, die ersten ` offset ` Ergebnisse nicht zurückzugeben.
Die Parameter „ limit “ und „ offset “ werden gemeinsam verwendet, um die Paginierung zu implementieren.
Ist „ bounds “ nicht null und ein gültiger „ QGeoShape “, wird dieser verwendet, um die Ergebnisse auf diejenigen zu beschränken, die in „ bounds “ enthalten sind.
Der Benutzer ist dafür verantwortlich, das zurückgegebene Antwortobjekt zu löschen; dies kann jedoch im Slot erfolgen, der mit QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() oder QGeoCodeReply::errorOccurred() über deleteLater() verbunden ist.
QLocale QGeoCodingManagerEngine::locale() const
Gibt die Locale zurück, anhand derer diesem Geokodierungsmanager mitgeteilt wird, welche Sprache für die Ergebnisse verwendet werden soll.
Siehe auch „ setLocale()“.
QString QGeoCodingManagerEngine::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 QGeoCodingManagerEngine::managerVersion() const
Gibt die Version dieser Engine-Implementierung zurück.
Die Kombination aus „ managerName()“ und „managerVersion()“ sollte innerhalb der Plugin-Implementierungen eindeutig sein.
[virtual] QGeoCodeReply *QGeoCodingManagerEngine::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)
Startet die umgekehrte Geokodierung von coordinate. Bei der umgekehrten Geokodierung wird eine Adresse ermittelt, die einer bestimmten Koordinate entspricht.
Es wird ein „ QGeoCodeReply “-Objekt zurückgegeben, mit dem sich der Reverse-Geocoding-Vorgang verwalten und dessen Ergebnisse ausgeben lassen.
Diese Engine und das zurückgegebene ` QGeoCodeReply `-Objekt senden Signale aus, die anzeigen, ob der Vorgang erfolgreich abgeschlossen wurde oder ob Fehler aufgetreten sind.
Wenn `supportsReverseGeocoding()` den Wert `false` zurückgibt, wird ein ` QGeoCodeReply::UnsupportedOptionError ` ausgelöst.
Zu diesem Zeitpunkt können mit ` QGeoCodeReply::locations()` die Ergebnisse abgerufen werden, die aus einer Liste von ` QGeoLocation `-Objekten bestehen. Diese Objekte stellen eine Kombination aus Koordinaten- und Adressdaten dar.
Die in den Ergebnissen zurückgegebenen Koordinatendaten können von ` coordinate` abweichen. Dies tritt in der Regel auf, wenn das Backend des Reverse-Geocoding-Dienstes die Koordinaten so verschiebt, dass sie näher an den übereinstimmenden Adressen liegen, oder wenn das Backend Ergebnisse mit mehreren Detailstufen zurückgibt.
Wenn das Backend des Reverse-Geocoding-Dienstes mehrere Ergebnisse zurückgibt, werden diese in der Reihenfolge ihrer Spezifität bereitgestellt. Dies ist normalerweise der Fall, wenn das Backend so konfiguriert ist, dass es Reverse-Geocoding über mehrere Detailebenen hinweg durchführt. Beispielsweise geben einige Dienste Adress- und Koordinatenpaare für die Straßenadresse, die Stadt, das Bundesland und das Land zurück.
Ist ` bounds ` nicht null und ein gültiger ` QGeoShape `, wird dieser verwendet, um die Ergebnisse auf diejenigen zu beschränken, die in ` bounds` enthalten sind.
Der Benutzer ist dafür verantwortlich, das zurückgegebene Antwortobjekt zu löschen; dies kann jedoch in dem Slot erfolgen, der mit QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() oder QGeoCodeReply::errorOccurred() über deleteLater() verbunden ist.
void QGeoCodingManagerEngine::setLocale(const QLocale &locale)
Legt die von diesem Manager zu verwendende Ländereinstellung auf „ locale “ fest.
Wenn dieser Geokodierungsmanager die Rückgabe der Ergebnisse in verschiedenen Sprachen unterstützt, werden diese in der Sprache von locale zurückgegeben.
Ist die Locale nicht festgelegt, wird standardmäßig die System-Locale verwendet.
Siehe auch locale().
© 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.