QGeoSatelliteInfoSource Class

Die Klasse QGeoSatelliteInfoSource ist eine abstrakte Basisklasse für die Verteilung von Aktualisierungen von Satelliteninformationen. Mehr...

Kopfzeile: #include <QGeoSatelliteInfoSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning
Vererbt: QObject
Vererbt von:

QNmeaSatelliteInfoSource

Öffentliche Typen

enum Error { AccessError, ClosedError, NoError, UnknownSourceError, UpdateTimeoutError }

Eigenschaften

Öffentliche Funktionen

virtual ~QGeoSatelliteInfoSource()
(since 6.2) virtual QVariant backendProperty(const QString &name) const
QBindable<int> bindableUpdateInterval()
virtual QGeoSatelliteInfoSource::Error error() const = 0
virtual int minimumUpdateInterval() const = 0
(since 6.2) virtual bool setBackendProperty(const QString &name, const QVariant &value)
virtual void setUpdateInterval(int msec)
QString sourceName() const
int updateInterval() const

Öffentliche Slots

virtual void requestUpdate(int timeout = 0) = 0
virtual void startUpdates() = 0
virtual void stopUpdates() = 0

Signale

void errorOccurred(QGeoSatelliteInfoSource::Error satelliteError)
void satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites)
void satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites)

Statische öffentliche Mitglieder

QStringList availableSources()
QGeoSatelliteInfoSource *createDefaultSource(QObject *parent)
(since Qt 5.14) QGeoSatelliteInfoSource *createDefaultSource(const QVariantMap &parameters, QObject *parent)
QGeoSatelliteInfoSource *createSource(const QString &sourceName, QObject *parent)
(since Qt 5.14) QGeoSatelliteInfoSource *createSource(const QString &sourceName, const QVariantMap &parameters, QObject *parent)

Ausführliche Beschreibung

Die statische Funktion QGeoSatelliteInfoSource::createDefaultSource() erstellt eine Standard-Satellitendatenquelle, die für die Plattform geeignet ist, sofern eine solche vorhanden ist. Andernfalls werden die verfügbaren QGeoPositionInfoSourceFactory Plugins auf eine verfügbare Satellitendatenquelle überprüft.

Rufen Sie startUpdates() und stopUpdates() auf, um regelmäßige Aktualisierungen zu starten und zu stoppen, oder requestUpdate(), um eine einzelne Aktualisierung anzufordern. Wenn eine Aktualisierung verfügbar ist, werden satellitesInViewUpdated() und/oder satellitesInUseUpdated() ausgegeben.

Wenn regelmäßige Satelliten-Updates erforderlich sind, kann mit setUpdateInterval() angegeben werden, wie oft diese Updates ausgegeben werden sollen. Wenn kein Intervall angegeben wird, werden Aktualisierungen einfach immer dann bereitgestellt, wenn sie verfügbar sind. Ein Beispiel:

// Emit updates every 10 seconds if available
QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createDefaultSource(0);
if (source)
    source->setUpdateInterval(10000);

Um ein zuvor festgelegtes Aktualisierungsintervall zu entfernen, rufen Sie setUpdateInterval() mit einem Wert von 0 auf.

Hinweis: Die Satellitenquelle kann einen Mindestwert für die Aktualisierungsintervalle vorschreiben, der von minimumUpdateInterval() zurückgegeben wird.

Hinweis: Um diese Klasse vom Android-Dienst aus zu verwenden, siehe Qt Positioning auf Android.

Dokumentation der Mitgliedstypen

enum QGeoSatelliteInfoSource::Error

Die Aufzählung Error stellt die Fehler dar, die auftreten können.

KonstanteWertBeschreibung
QGeoSatelliteInfoSource::AccessError0Der Verbindungsaufbau zum Satelliten-Backend ist fehlgeschlagen, weil die Anwendung nicht über die erforderlichen Berechtigungen verfügte.
QGeoSatelliteInfoSource::ClosedError1Das Satelliten-Backend hat die Verbindung geschlossen, was zum Beispiel passiert, wenn der Benutzer die Ortungsdienste ausschaltet. Dieses Objekt wird ungültig und sollte gelöscht werden. Eine neue Satellitenquelle kann zu einem späteren Zeitpunkt durch den Aufruf von createDefaultSource() erstellt werden.
QGeoSatelliteInfoSource::NoError2Es ist kein Fehler aufgetreten.
QGeoSatelliteInfoSource::UnknownSourceError-1Ein nicht identifizierter Fehler ist aufgetreten.
QGeoSatelliteInfoSource::UpdateTimeoutError3Die aktuellen Satelliteninformationen konnten nicht innerhalb der angegebenen Zeitspanne abgerufen werden.

Dokumentation der Eigenschaft

[read-only] minimumUpdateInterval : const int

Diese Eigenschaft enthält die Mindestzeit (in Millisekunden), die zum Abrufen einer Satellitenaktualisierung erforderlich ist.

Dies ist der Mindestwert, der von setUpdateInterval() und requestUpdate() akzeptiert wird.

Zugriffsfunktionen:

virtual int minimumUpdateInterval() const = 0

[bindable] updateInterval : int

Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.

Diese Eigenschaft enthält das gewünschte Intervall in Millisekunden zwischen den einzelnen Aktualisierungen.

Wenn das Aktualisierungsintervall nicht festgelegt ist (oder auf 0 gesetzt ist), stellt die Quelle Aktualisierungen so oft wie nötig bereit.

Wenn das Aktualisierungsintervall festgelegt ist, stellt die Quelle Aktualisierungen in einem Intervall bereit, das dem angeforderten Intervall so nahe wie möglich kommt. Wenn das angeforderte Intervall kleiner ist als minimumUpdateInterval(), wird stattdessen das Mindestintervall verwendet.

Änderungen am Aktualisierungsintervall werden so schnell wie möglich vorgenommen, die Dauer der Änderung kann jedoch von Implementierung zu Implementierung variieren. Ob die verstrichene Zeit des vorherigen Intervalls als Teil des neuen Intervalls gezählt wird oder nicht, hängt ebenfalls von der Implementierung ab.

Der Standardwert für diese Eigenschaft ist 0.

Hinweis: Implementierungen von Unterklassen müssen die Basisimplementierung von setUpdateInterval() aufrufen, damit updateInterval() den richtigen Wert zurückgibt.

Dokumentation der Mitgliedsfunktionen

[virtual noexcept] QGeoSatelliteInfoSource::~QGeoSatelliteInfoSource()

Zerstört die Satellitenquelle.

[static] QStringList QGeoSatelliteInfoSource::availableSources()

Gibt eine Liste der verfügbaren Quell-Plugins zurück, einschließlich des Standard-System-Backends, falls eines vorhanden ist.

[virtual, since 6.2] QVariant QGeoSatelliteInfoSource::backendProperty(const QString &name) const

Gibt den Wert der Backend-spezifischen Eigenschaft namens name zurück, falls vorhanden. Andernfalls ist der zurückgegebene Wert ungültig.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch setBackendProperty.

[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(QObject *parent)

Erstellt und gibt eine Quelle mit der angegebenen parent zurück, die von der Standardquelle des Systems für Satellitenaktualisierungsinformationen oder dem verfügbaren Plugin mit der höchsten Priorität liest.

Gibt nullptr zurück, wenn das System keine Standard-Satellitenquelle hat, keine gültigen Plugins gefunden werden konnten oder der Benutzer nicht über die Berechtigung zum Zugriff auf die Satellitendaten verfügt.

[static, since Qt 5.14] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(const QVariantMap &parameters, QObject *parent)

Erstellt und gibt eine Satellitenquelle mit der angegebenen parent zurück, die aus den Standardquellen des Systems für Satellitendaten oder dem Plugin mit der höchsten verfügbaren Priorität liest.

Gibt nullptr zurück, wenn das System keine Standard-Satellitenquelle hat, keine gültigen Plugins gefunden werden konnten oder der Benutzer nicht die Berechtigung hat, auf die Satelliteninformationen zuzugreifen.

Diese Methode übergibt parameters an die Factory, um die Quelle zu konfigurieren.

Diese Funktion wurde in Qt 5.14 eingeführt.

[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createSource(const QString &sourceName, QObject *parent)

Erzeugt und liefert eine Quelle mit der angegebenen parent, indem das Plugin mit dem Namen sourceName geladen wird.

Gibt nullptr zurück, wenn das Plugin nicht gefunden wird.

[static, since Qt 5.14] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createSource(const QString &sourceName, const QVariantMap &parameters, QObject *parent)

Erzeugt eine Satellitenquelle mit der angegebenen parent und gibt sie zurück, indem das Plugin mit dem Namen sourceName geladen wird.

Gibt nullptr zurück, wenn das Plugin nicht gefunden werden kann.

Diese Methode übergibt parameters an die Fabrik, um die Quelle zu konfigurieren.

Diese Funktion wurde in Qt 5.14 eingeführt.

[pure virtual] QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSource::error() const

Gibt den zuletzt aufgetretenen Fehler zurück.

Hinweis: Seit Qt6 wird der letzte Fehler beim Aufruf von startUpdates() oder requestUpdate() immer zurückgesetzt.

[signal] void QGeoSatelliteInfoSource::errorOccurred(QGeoSatelliteInfoSource::Error satelliteError)

Dieses Signal wird ausgegeben, wenn ein Fehler aufgetreten ist. Der Parameter satelliteError beschreibt die Art des aufgetretenen Fehlers.

[pure virtual slot] void QGeoSatelliteInfoSource::requestUpdate(int timeout = 0)

Versucht, die aktuellen Satelliteninformationen zu erhalten und sendet satellitesInViewUpdated() und satellitesInUseUpdated() mit diesen Informationen. Wenn die aktuellen Satelliteninformationen nicht innerhalb der angegebenen timeout (in Millisekunden) gefunden werden können oder wenn timeout kleiner ist als der von minimumUpdateInterval() zurückgegebene Wert, wird ein errorOccurred()-Signal mit UpdateTimeoutError gesendet.

Ist die Zeitüberschreitung gleich Null, wird die Zeitüberschreitung auf eine für die Quelle angemessene Zeitspanne zurückgesetzt.

Dies hat keine Auswirkungen, wenn eine andere Aktualisierungsanforderung im Gange ist. Sie kann jedoch auch dann aufgerufen werden, wenn startUpdates() bereits aufgerufen wurde und regelmäßige Aktualisierungen im Gange sind.

Hinweis: Seit Qt6 setzt diese Methode immer den letzten Fehler auf NoError zurück, bevor die Satelliteninformationen angefordert werden.

Hinweis: Um zu verstehen, wie man diese Methode von einem Android-Dienst aus verwendet, siehe Qt Positioning auf Android.

[signal] void QGeoSatelliteInfoSource::satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites)

Wenn startUpdates() oder requestUpdate() aufgerufen wird, wird dieses Signal ausgegeben, wenn eine Aktualisierung der Anzahl der derzeit verwendeten Satelliten verfügbar ist.

Dies sind die Satelliten, die zur Bestimmung der aktuellen Position verwendet werden.

Der Parameter satellites enthält die aktuell genutzten Satelliten.

[signal] void QGeoSatelliteInfoSource::satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites)

Wenn startUpdates() oder requestUpdate() aufgerufen wird, wird dieses Signal ausgegeben, wenn eine Aktualisierung für die derzeit angezeigten Satelliten verfügbar ist.

Der Parameter satellites enthält die aktuell angezeigten Satelliten.

[virtual, since 6.2] bool QGeoSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value)

Setzt die Backend-spezifische Eigenschaft namens name auf value. Gibt bei Erfolg true zurück, andernfalls false. Backend-spezifische Eigenschaften können verwendet werden, um das Verhalten des Satelliteninfo-Subsystems zur Laufzeit zu konfigurieren.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch backendProperty.

QString QGeoSatelliteInfoSource::sourceName() const

Gibt den eindeutigen Namen der verwendeten Satellitenquellen-Implementierung zurück.

Dies ist derselbe Name, der an createSource() übergeben werden kann, um eine neue Instanz einer bestimmten Satellitenquellen-Implementierung zu erstellen.

[pure virtual slot] void QGeoSatelliteInfoSource::startUpdates()

Beginnt in regelmäßigen Abständen mit der Ausgabe von Updates. Die Aktualisierungen werden immer dann bereitgestellt, wenn neue Satelliteninformationen verfügbar sind.

Wenn Satelliteninformationen nicht abgerufen werden können oder eine andere Form der Zeitüberschreitung aufgetreten ist, können die Signale satellitesInViewUpdated() und satellitesInUseUpdated() mit leeren Parameterlisten ausgegeben werden.

Hinweis: Seit Qt6 setzt diese Methode immer den letzten Fehler auf NoError zurück, bevor sie mit den Aktualisierungen beginnt.

Hinweis: Um zu verstehen, wie man diese Methode von einem Android-Dienst aus verwendet, siehe Qt Positioning auf Android.

Siehe auch satellitesInViewUpdated() und satellitesInUseUpdated().

[pure virtual slot] void QGeoSatelliteInfoSource::stopUpdates()

Beendet die regelmäßige Ausgabe von Updates.

© 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.