QGeoCodingManagerEngine Class
Die Klasse QGeoCodingManagerEngine bietet eine Schnittstelle und Komfortmethoden für Implementierer von QGeoServiceProvider -Plugins, die Unterstützung für Geokodierungsoperationen bieten wollen. 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) |
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.)
In der Standardimplementierung geben supportsGeocoding() und supportsReverseGeocoding() false zurück, während geocode() und reverseGeocode() QGeoCodeReply::UnsupportedOptionError auslösen.
Wenn der Dienstanbieter Geokodierung unterstützt, sollte die Unterklasse eine Implementierung von geocode() bereitstellen und setSupportsGeocoding(true) zu einem bestimmten Zeitpunkt aufrufen, bevor geocode() aufgerufen wird.
Wenn der Dienstanbieter die umgekehrte Geokodierung unterstützt, sollte die Unterklasse eine Implementierung von reverseGeocode() bereitstellen und setSupportsReverseGeocoding(true) zu einem bestimmten Zeitpunkt vor dem Aufruf von reverseGeocode() aufrufen.
Eine Unterklasse von QGeoCodingManagerEngine wird oft intern eine Unterklasse von QGeoCodeReply verwenden, um den QGeoCodeReply Instanzen, die von der Engine verwendet werden, alle engine-spezifischen Daten hinzuzufügen (z.B. ein QNetworkReply Objekt für netzwerkbasierte Dienste).
Siehe auch QGeoCodingManager.
Dokumentation der Mitgliedsfunktionen
[explicit]
QGeoCodingManagerEngine::QGeoCodingManagerEngine(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]
QGeoCodingManagerEngine::~QGeoCodingManagerEngine()
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 aufgetreten ist. Wahrscheinlich wird das Signal QGeoCodingManagerEngine::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 QGeoCodeReply::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 QGeoCodingManagerEngine::finished(QGeoCodeReply *reply)
Dieses Signal wird ausgegeben, wenn reply die Verarbeitung abgeschlossen hat.
Wenn reply::error() gleich QGeoCodeReply::NoError ist, wurde die Verarbeitung erfolgreich abgeschlossen.
Dieses Signal und QGeoCodeReply::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().
[virtual]
QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QGeoAddress &address, const QGeoShape &bounds)
Beginnt die Geokodierung von address. Bei der Geokodierung wird eine Koordinate gefunden, die einer bestimmten Adresse entspricht.
Es wird ein Objekt QGeoCodeReply zurückgegeben, das zur Verwaltung des Geokodierungsvorgangs und zur Rückgabe der Ergebnisse des Vorgangs verwendet werden kann.
Diese Engine und das zurückgegebene QGeoCodeReply Objekt geben 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 ausgegeben.
Sobald der Vorgang abgeschlossen ist, kann QGeoCodeReply::locations() verwendet werden, um die Ergebnisse abzurufen, 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 sich von address unterscheiden. Dies ist in der Regel der Fall, wenn das Backend des Geokodierungsdienstes eine andere kanonische Form von Adressen verwendet oder wenn address nur teilweise ausgefüllt wurde.
Wenn bounds nicht leer und eine gültige QGeoShape ist, wird sie 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 mit den angegebenen Daten zu geokodieren.
Der Benutzer ist für das Löschen des zurückgegebenen Antwortobjekts verantwortlich, obwohl dies in dem mit QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() oder QGeoCodeReply::errorOccurred() verbundenen Slot mit deleteLater() erfolgen kann.
[virtual]
QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)
Beginnt die Geokodierung für einen Ort, der mit address übereinstimmt.
Es wird ein QGeoCodeReply Objekt zurückgegeben, das zur Verwaltung des Geokodierungsvorgangs und zur Rückgabe der Ergebnisse des Vorgangs verwendet werden kann.
Diese Engine und das zurückgegebene QGeoCodeReply Objekt geben Signale aus, die anzeigen, ob der Vorgang abgeschlossen wurde oder ob Fehler aufgetreten sind.
Sobald der Vorgang abgeschlossen ist, kann QGeoCodeReply::locations() verwendet werden, um die Ergebnisse abzurufen, die aus einer Liste von QGeoLocation Objekten bestehen. Diese Objekte stellen eine Kombination aus Koordinaten- und Adressdaten dar.
Wenn limit -1 ist, wird die gesamte Ergebnismenge zurückgegeben, andernfalls werden höchstens limit Ergebnisse zurückgegeben.
Der Parameter offset wird verwendet, um den Geokodierungsdienst aufzufordern, die ersten offset Ergebnisse nicht zurückzugeben.
Die Ergebnisse limit und offset werden zusammen verwendet, um das Paging zu implementieren.
Wenn bounds nicht null und ein gültiger QGeoShape ist, wird er verwendet, um die Ergebnisse auf diejenigen zu beschränken, die in bounds enthalten sind.
Der Benutzer ist für das Löschen des zurückgegebenen Antwortobjekts verantwortlich, obwohl dies in dem mit QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() oder QGeoCodeReply::errorOccurred() verbundenen Slot mit deleteLater() erfolgen kann.
QLocale QGeoCodingManagerEngine::locale() const
Gibt das Gebietsschema zurück, das verwendet wird, um dem Geokodierungsmanager mitzuteilen, welche Sprache für die Ergebnisse zu verwenden ist.
Siehe auch setLocale().
QString QGeoCodingManagerEngine::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 QGeoCodingManagerEngine::managerVersion() const
Gibt die Version dieser Engine-Implementierung zurück.
Die Kombination aus managerName() und managerVersion() sollte bei Plugin-Implementierungen eindeutig sein.
[virtual]
QGeoCodeReply *QGeoCodingManagerEngine::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)
Beginnt die umgekehrte Geokodierung von coordinate. Bei der umgekehrten Geokodierung geht es darum, eine Adresse zu finden, die einer bestimmten Koordinate entspricht.
Es wird ein Objekt QGeoCodeReply zurückgegeben, das zur Verwaltung des Vorgangs der umgekehrten Geokodierung und zur Rückgabe der Ergebnisse verwendet werden kann.
Diese Engine und das zurückgegebene QGeoCodeReply Objekt geben Signale aus, die anzeigen, ob der Vorgang abgeschlossen wurde oder ob Fehler aufgetreten sind.
Wenn supportsReverseGeocoding() den Wert false zurückgibt, wird ein QGeoCodeReply::UnsupportedOptionError ausgegeben.
Zu diesem Zeitpunkt kann QGeoCodeReply::locations() verwendet werden, um die Ergebnisse abzurufen, 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 sich von coordinate unterscheiden. Dies ist in der Regel der Fall, wenn das Backend des umgekehrten Geokodierungsdienstes die Koordinaten so verschiebt, dass sie näher an den übereinstimmenden Adressen liegen, oder wenn das Backend Ergebnisse auf mehreren Detailebenen zurückgibt.
Wenn das Backend des umgekehrten Geokodierungsdienstes mehrere Ergebnisse zurückgibt, werden diese in der Reihenfolge der Spezifität bereitgestellt. Dies ist normalerweise der Fall, wenn das Backend für die umgekehrte Geokodierung über mehrere Detailebenen hinweg konfiguriert ist. Beispielsweise geben einige Dienste Adress- und Koordinatenpaare für die Straßenadresse, die Stadt, das Bundesland und das Land zurück.
Wenn bounds nicht null und eine gültige QGeoShape ist, wird sie verwendet, um die Ergebnisse auf diejenigen zu beschränken, die in bounds enthalten sind.
Der Benutzer ist für das Löschen des zurückgegebenen Antwortobjekts verantwortlich, obwohl dies in dem mit QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::errorOccurred(), QGeoCodeReply::finished() oder QGeoCodeReply::errorOccurred() verbundenen Slot mit deleteLater() erfolgen kann.
void QGeoCodingManagerEngine::setLocale(const QLocale &locale)
Legt das von diesem Manager zu verwendende Gebietsschema auf locale fest.
Wenn dieser Geokodierungsmanager die Rückgabe der Ergebnisse 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().
© 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.