Класс QGeoSatelliteInfoSource
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках. Подробнее...
| Заголовок: | #include <QGeoSatelliteInfoSource> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
| Наследует: | QObject |
Открытые типы
| перечисление | Ошибка { ОшибкаДоступа, ОшибкаЗакрытия, БезОшибок, ОшибкаНеизвестногоИсточника } |
Свойства
- minimumUpdateInterval : const int
- updateInterval : int
- 1 свойство унаследовано от QObject
Открытые функции
| QGeoSatelliteInfoSource(QObject *parent) | |
| виртуальный | ~QGeoSatelliteInfoSource() |
| виртуальный QGeoSatelliteInfoSource::Ошибка | error() const = 0 |
| виртуальный int | minimumUpdateInterval() const = 0 |
| виртуальный void | setUpdateInterval(int msec) |
| QString | sourceName() const |
| int | updateInterval() const |
- 31 открытая функция унаследована от QObject
Открытые слоты
| виртуальный void | requestUpdate(int timeout = ...) = 0 |
| виртуальный void | startUpdates() = 0 |
| виртуальный void | stopUpdates() = 0 |
- 1 открытый слот унаследован от QObject
Сигналы
| void | error(QGeoSatelliteInfoSource::Ошибка satelliteError) |
| void | requestTimeout() |
| void | satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites) |
| void | satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites) |
- 2 сигнала унаследованы от QObject
Статические открытые члены
| QStringList | availableSources() |
| QGeoSatelliteInfoSource * | createDefaultSource(QObject *parent) |
| QGeoSatelliteInfoSource * | createSource(const QString &sourceName, QObject *parent) |
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованы от QObject
Дополнительные унаследованные члены
- 9 защищённых функций унаследованы от QObject
Подробное описание
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках.
Статическая функция QGeoSatelliteInfoSource::createDefaultSource() создаёт источник данных о спутниках по умолчанию, подходящий для платформы, если он доступен. В противном случае проверяются доступные плагины QGeoPositionInfoSourceFactory на наличие источника данных о спутниках.
Вызовите startUpdates() и stopUpdates() для запуска и остановки регулярных обновлений или requestUpdate() для запроса отдельного обновления. При наличии обновления будут выпущены сигналы satellitesInViewUpdated() и/или satellitesInUseUpdated().
Если требуются регулярные обновления информации о спутниках, можно использовать setUpdateInterval() для указания частоты отправки этих обновлений. Если интервал не указан, обновления предоставляются просто по мере их доступности. Например:
// Emit updates every 10 seconds if available
QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createDefaultSource(0);
if (source)
source->setUpdateInterval(10000); Чтобы удалить ранее заданный интервал обновления, вызовите setUpdateInterval() со значением 0.
Обратите внимание, что у источника спутниковых данных может быть минимальное требуемое значение для интервалов обновления, возвращаемое функцией minimumUpdateInterval().
Документация типов членов
перечисление QGeoSatelliteInfoSource::Ошибка
Перечисление Ошибка представляет собой ошибки, которые могут произойти.
| Константа | Значение | Описание |
|---|---|---|
QGeoSatelliteInfoSource::AccessError |
0 |
Настройка подключения к спутниковому бэкенду не удалась, так как у приложения не было необходимых привилегий. |
QGeoSatelliteInfoSource::ClosedError |
1 |
Спутниковый бэкенд закрыл подключение, что происходит, например, если пользователь отключает сервисы местоположения. Этот объект становится недоступным и должен быть удалён. Новый источник спутниковых данных можно создать, вызвав createDefaultSource() позже. |
QGeoSatelliteInfoSource::NoError |
2 |
Ошибка не произошла. |
QGeoSatelliteInfoSource::UnknownSourceError |
-1 |
Произошла неопределённая ошибка. |
Документация свойств
minimumUpdateInterval : const int
Это свойство хранит минимальное время (в миллисекундах), необходимое для получения обновления данных о спутнике.
Это минимальное значение, принимаемое функциями setUpdateInterval() и requestUpdate().
Функции доступа:
| virtual int | minimumUpdateInterval() const = 0 |
updateInterval : int
Это свойство хранит запрашиваемый интервал в миллисекундах между каждым обновлением.
Если интервал обновления не задан (или равен 0), источник будет предоставлять обновления так часто, как необходимо.
Если интервал обновления задан, источник будет предоставлять обновления с интервалом, максимально приближенным к запрошенному интервалу. Если запрошенный интервал меньше, чем minimumUpdateInterval(), используется минимальный интервал.
Изменения интервала обновления происходят как можно быстрее, однако время изменения может варьироваться в зависимости от реализации. То, учитывается ли прошедшее время с предыдущего интервала как часть нового интервала, также зависит от реализации.
Значение по умолчанию для этого свойства равно 0.
Примечание: Реализации подклассов должны вызывать базовый метод setUpdateInterval(), чтобы updateInterval() возвращал правильное значение.
Функции доступа:
| int | updateInterval() const |
| virtual void | setUpdateInterval(int msec) |
Документация функций-членов
QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QObject *parent)
Создает источник данных о спутниках со указанным parent.
[virtual] QGeoSatelliteInfoSource::~QGeoSatelliteInfoSource()
Уничтожает источник данных о спутниках.
[static] QStringList QGeoSatelliteInfoSource::availableSources()
Возвращает список доступных плагинов источника, включая системный бэкэнд по умолчанию, если он доступен.
[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(QObject *parent)
Создает и возвращает источник, с заданным parent, который считывает данные об обновлении спутников из системного источника по умолчанию или плагин с наивысшим приоритетом.
Возвращает 0, если у системы нет источника спутниковых данных по умолчанию, не найдены валидные плагины или у пользователя нет разрешения на доступ к спутниковым данным.
[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createSource(const QString &sourceName, QObject *parent)
Создает и возвращает источник с указанным parent, загружая плагин с именем sourceName.
Возвращает 0, если плагин не найден.
[pure virtual] QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSource::error() const
Возвращает последнюю произошедшую ошибку.
Это событие не генерируется, когда произошел requestTimeout().
[signal] void QGeoSatelliteInfoSource::error(QGeoSatelliteInfoSource::Error satelliteError)
Это сигнал испускается после возникновения ошибки. Параметр satelliteError описывает тип произошедшей ошибки.
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя функции Qt предоставляет удобную утилиту для получения указателя функции, как показано в этом примере:
connect(geoSatelliteInfoSource, QOverload<QGeoSatelliteInfoSource::Error>::of(&QGeoSatelliteInfoSource::error),
[=](QGeoSatelliteInfoSource::Error satelliteError){ /* ... */ });
[signal] void QGeoSatelliteInfoSource::requestTimeout()
Издается, если requestUpdate() был вызван, и текущая информация о спутниках не могла быть получена в течение заданного таймаута.
Хотя срабатывание этого сигнала можно считать ошибкой, это не подразумевает испускание сигнала error(). Требуется только испускание сигнала requestTimeout(), чтобы указать на таймаут.
[pure virtual slot] void QGeoSatelliteInfoSource::requestUpdate(int timeout = ...)
Попытка получить текущую информацию о спутниках и испустить satellitesInViewUpdated() и satellitesInUseUpdated() с этой информацией. Если текущая информация о спутниках не может быть найдена в течение заданного timeout (в миллисекундах) или если timeout меньше значения, возвращаемого minimumUpdateInterval(), испускается requestTimeout().
Если таймаут равен нулю, таймаут устанавливается по умолчанию на разумное значение, соответствующее источнику.
Это ничего не делает, если в процессе уже есть другой запрос обновления. Однако его можно вызвать, даже если startUpdates() уже был вызван и регулярные обновления находятся в процессе.
[signal] void QGeoSatelliteInfoSource::satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites)
Если startUpdates() или requestUpdate() вызывается, этот сигнал испускается, когда доступно обновление количества спутников, которые в настоящее время используются.
Это спутники, используемые для получения «фиксирования» — то есть тех, которые используются для определения текущего местоположения.
Параметр satellites содержит спутники, которые в настоящее время используются.
[signal] void QGeoSatelliteInfoSource::satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites)
Если startUpdates() или requestUpdate() вызывается, этот сигнал испускается, когда доступно обновление спутников, которые в настоящее время находятся в поле зрения.
Параметр satellites содержит спутники, которые в настоящее время находятся в поле зрения.
QString QGeoSatelliteInfoSource::sourceName() const
Возвращает уникальное имя реализации источника спутниковых данных, используемой в данный момент.
Это то же имя, которое можно передать в createSource() для создания нового экземпляра конкретной реализации источника спутниковых данных.
[pure virtual slot] void QGeoSatelliteInfoSource::startUpdates()
Начинает испускать обновления с регулярными интервалами. Обновления будут предоставляться всякий раз, когда появятся новые данные о спутниках.
Если информация о спутниках не может быть получена или произошел какой-либо таймаут, сигналы satellitesInViewUpdated() и satellitesInUseUpdated() могут быть испущены со списками параметров, которые пусты.
См. также satellitesInViewUpdated() и satellitesInUseUpdated().
[pure virtual slot] void QGeoSatelliteInfoSource::stopUpdates()
Останавливает испускание обновлений с регулярными интервалами.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qgeosatelliteinfosource.html