Sur cette page

QGeoSatelliteInfoSource Class

La classe QGeoSatelliteInfoSource est une classe de base abstraite pour la distribution de mises à jour d'informations satellitaires. Plus d'informations...

En-tête : #include <QGeoSatelliteInfoSource>
CMake : find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake : QT += positioning
Hérite : QObject
Hérité par :

QNmeaSatelliteInfoSource

Types publics

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

Propriétés

Fonctions publiques

QGeoSatelliteInfoSource(QObject *parent)
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

Emplacements publics

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

Signaux

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

Membres publics statiques

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)

Description détaillée

La fonction statique QGeoSatelliteInfoSource::createDefaultSource() crée une source de données satellite par défaut adaptée à la plateforme, si elle est disponible. Dans le cas contraire, les plugins QGeoPositionInfoSourceFactory disponibles seront vérifiés pour trouver celui qui dispose d'une source de données satellite.

Appelez startUpdates() et stopUpdates() pour démarrer et arrêter les mises à jour régulières, ou requestUpdate() pour demander une seule mise à jour. Lorsqu'une mise à jour est disponible, satellitesInViewUpdated() et/ou satellitesInUseUpdated() sont émis.

Si des mises à jour régulières du satellite sont nécessaires, setUpdateInterval() peut être utilisé pour spécifier la fréquence à laquelle ces mises à jour doivent être émises. Si aucun intervalle n'est spécifié, les mises à jour sont simplement fournies dès qu'elles sont disponibles. Par exemple, il est possible de supprimer un intervalle de mise à jour qui a été spécifié précédemment :

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

Pour supprimer un intervalle de mise à jour précédemment défini, appelez setUpdateInterval() avec une valeur de 0.

Remarque : la source satellite peut avoir une valeur minimale requise pour les intervalles de mise à jour, comme indiqué par minimumUpdateInterval().

Remarque : pour utiliser cette classe à partir d'un service Android, voir Qt Positioning sur Android.

Documentation sur les types de membres

enum QGeoSatelliteInfoSource::Error

L'énumération Error représente les erreurs qui peuvent se produire.

ConstanteValeurDescription de l'erreur
QGeoSatelliteInfoSource::AccessError0L'établissement de la connexion avec le backend du satellite a échoué parce que l'application ne disposait pas des privilèges requis.
QGeoSatelliteInfoSource::ClosedError1Le backend satellite a fermé la connexion, ce qui se produit par exemple lorsque l'utilisateur désactive les services de localisation. Cet objet devient invalide et doit être supprimé. Une nouvelle source satellite peut être créée en appelant createDefaultSource() ultérieurement.
QGeoSatelliteInfoSource::NoError2Aucune erreur ne s'est produite.
QGeoSatelliteInfoSource::UnknownSourceError-1Une erreur non identifiée s'est produite.
QGeoSatelliteInfoSource::UpdateTimeoutError3Les informations actuelles sur le satellite n'ont pas pu être récupérées dans le délai spécifié.

Documentation sur les propriétés

[read-only] minimumUpdateInterval : int

Cette propriété indique le temps minimum (en millisecondes) nécessaire pour récupérer une mise à jour satellite.

C'est la valeur minimale acceptée par setUpdateInterval() et requestUpdate().

Fonctions d'accès :

virtual int minimumUpdateInterval() const = 0

[bindable] updateInterval : int

Remarque : Cette propriété prend en charge les liaisons QProperty.

Cette propriété indique l'intervalle requis en millisecondes entre chaque mise à jour.

Si l'intervalle de mise à jour n'est pas défini (ou est défini à 0), la source fournira des mises à jour aussi souvent que nécessaire.

Si l'intervalle de mise à jour est défini, la source fournira des mises à jour à un intervalle aussi proche que possible de l'intervalle demandé. Si l'intervalle demandé est inférieur à minimumUpdateInterval(), l'intervalle minimum est utilisé à la place.

Les modifications de l'intervalle de mise à jour interviendront dès que possible, mais le temps nécessaire à la modification peut varier d'une implémentation à l'autre. La prise en compte ou non du temps écoulé depuis l'intervalle précédent dans le nouvel intervalle dépend également de l'implémentation.

La valeur par défaut de cette propriété est 0.

Remarque : les implémentations de sous-classes doivent appeler l'implémentation de base de setUpdateInterval() afin que updateInterval() renvoie la bonne valeur.

Fonctions d'accès :

int updateInterval() const
virtual void setUpdateInterval(int msec)

Documentation des fonctions membres

[explicit] QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QObject *parent)

Crée une source satellite avec l'adresse parent spécifiée.

[virtual noexcept] QGeoSatelliteInfoSource::~QGeoSatelliteInfoSource()

Détruit la source satellite.

[static] QStringList QGeoSatelliteInfoSource::availableSources()

Renvoie une liste des plugins source disponibles, y compris le backend système par défaut s'il existe.

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

Renvoie la valeur de la propriété spécifique au backend nommée name, si elle est présente. Sinon, la valeur renvoyée sera invalide.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi setBackendProperty.

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

Crée et renvoie une source avec l'adresse parent spécifiée, qui lit les informations de mise à jour des satellites à partir de la source par défaut du système, ou à partir du plugin disponible ayant la plus haute priorité.

Retourne nullptr si le système n'a pas de source satellite par défaut, si aucun plugin valide n'a pu être trouvé ou si l'utilisateur n'a pas la permission d'accéder aux données satellite.

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

Crée et renvoie une source satellite avec l'adresse parent qui lit les sources de données satellite par défaut du système, ou le plugin avec la plus haute priorité disponible.

Elle renvoie nullptr si le système n'a pas de source satellite par défaut, si aucun plugin valide n'a pu être trouvé ou si l'utilisateur n'a pas la permission d'accéder aux informations satellite.

Cette méthode transmet parameters à l'usine pour configurer la source.

Cette fonction a été introduite dans Qt 5.14.

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

Crée et renvoie une source avec l'adresse parent, en chargeant le plugin nommé sourceName.

Renvoie nullptr si le plugin est introuvable.

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

Crée et renvoie une source satellite avec l'adresse parent, en chargeant le plugin nommé sourceName.

Elle renvoie nullptr si le plugin est introuvable.

Cette méthode transmet parameters à la fabrique pour configurer la source.

Cette fonction a été introduite dans Qt 5.14.

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

Renvoie la dernière erreur survenue.

Note : Depuis Qt6, la dernière erreur est toujours réinitialisée lors de l'appel à startUpdates() ou requestUpdate().

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

Ce signal est émis lorsqu'une erreur s'est produite. Le paramètre satelliteError décrit le type d'erreur qui s'est produite.

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

Tente d'obtenir les informations satellites actuelles et d'émettre satellitesInViewUpdated() et satellitesInUseUpdated() avec ces informations. Si l'information satellite actuelle ne peut être trouvée dans le délai donné timeout (en millisecondes) ou si timeout est inférieur à la valeur renvoyée par minimumUpdateInterval(), un signal errorOccurred() avec UpdateTimeoutError est émis.

Si le délai d'attente est égal à zéro, il est fixé par défaut à une durée raisonnable correspondant à la source.

Cela ne fait rien si une autre demande de mise à jour est en cours. Cependant, elle peut être appelée même si startUpdates() a déjà été appelé et que des mises à jour régulières sont en cours.

Remarque : depuis Qt6, cette méthode réinitialise toujours la dernière erreur à NoError avant de demander des informations sur le satellite.

Remarque : pour comprendre comment utiliser cette méthode à partir d'un service Android, voir Qt Positioning sur Android.

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

Si startUpdates() ou requestUpdate() est appelé, ce signal est émis lorsqu'une mise à jour du nombre de satellites actuellement utilisés est disponible.

Il s'agit des satellites utilisés pour obtenir un "point", c'est-à-dire pour déterminer la position actuelle.

Le paramètre satellites contient les satellites actuellement utilisés.

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

Si startUpdates() ou requestUpdate() est appelé, ce signal est émis lorsqu'une mise à jour des satellites actuellement en vue est disponible.

Le paramètre satellites contient les satellites actuellement en vue.

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

Définit la propriété spécifique au backend nommée name à value. Retourne true en cas de succès, false dans le cas contraire. Les propriétés spécifiques au backend peuvent être utilisées pour configurer le comportement du sous-système d'information satellite au moment de l'exécution.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi backendProperty.

QString QGeoSatelliteInfoSource::sourceName() const

Renvoie le nom unique de l'implémentation de la source satellite utilisée.

C'est ce même nom qui peut être transmis à createSource() afin de créer une nouvelle instance d'une implémentation particulière de source satellite.

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

Commence à émettre des mises à jour à intervalles réguliers. Les mises à jour seront fournies chaque fois que de nouvelles informations satellitaires seront disponibles.

Si les informations satellitaires ne peuvent être récupérées ou si une autre forme de dépassement de délai s'est produite, les signaux satellitesInViewUpdated() et satellitesInUseUpdated() peuvent être émis avec des listes de paramètres vides.

Remarque : depuis Qt6, cette méthode réinitialise toujours la dernière erreur à NoError avant de commencer les mises à jour.

Remarque : pour comprendre comment utiliser cette méthode à partir d'un service Android, voir Qt Positioning sur Android.

Voir également satellitesInViewUpdated() et satellitesInUseUpdated().

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

Arrête d'émettre des mises à jour à intervalles réguliers.

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