Класс QGeoSatelliteInfoSource
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках. Подробнее...
| Заголовок: | #include <QGeoSatelliteInfoSource> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
| Наследует от: | QObject |
Типы публичного доступа
| Перечисление | Error { AccessError, ClosedError, NoError, UnknownSourceError } |
Свойства
- minimumUpdateInterval : const int
- updateInterval : int
- 1 свойство унаследовано от QObject
Функции публичного доступа
| QGeoSatelliteInfoSource(QObject *parent) | |
| виртуальный | ~QGeoSatelliteInfoSource() |
| виртуальный QGeoSatelliteInfoSource::Error | error() const = 0 |
| виртуальный int | minimumUpdateInterval() const = 0 |
| виртуальный void | setUpdateInterval(int msec) |
| QString | sourceName() const |
| int | updateInterval() const |
- 34 функции публичного доступа унаследованы от QObject
Слот публичного доступа
| виртуальный void | requestUpdate(int timeout = ...) = 0 |
| виртуальный void | startUpdates() = 0 |
| виртуальный void | stopUpdates() = 0 |
- 1 слот публичного доступа унаследован от QObject
Сигналы
| void | error(QGeoSatelliteInfoSource::Error 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) |
- 10 статических членов публичного доступа унаследованы от QObject
Дополнительные унаследованные члены
- 1 публичная переменная унаследована от QObject
- 9 защищённые функции унаследованы от QObject
- 2 защищённые переменные унаследованы от 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::Error
Перечисление Error представляет ошибки, которые могут возникнуть.
| Постоянная | Значение | Описание |
|---|---|---|
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/archives/qt-5.11/qgeosatelliteinfosource.html