Класс 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() |
| виртуальный Error | error() const = 0 |
| виртуальный int | minimumUpdateInterval() const = 0 |
| виртуальный void | setUpdateInterval(int msec) |
| QString | sourceName() const |
| int | updateInterval() const |
- 32 публичные функции унаследованы от QObject
Публичные слоты
| виртуальный void | requestUpdate(int timeout = 0) = 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) |
- 11 статических публичных членов унаследованы от QObject
Дополнительные унаследованные члены
- 9 защищенных функций унаследованы от QObject
Подробное описание
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках.
Статическая функция QGeoSatelliteInfoSource::createDefaultSource() создает стандартный источник данных о спутниках, соответствующий платформе, если он доступен. В противном случае проверяются доступные плагины QGeoPositionInfoSourceFactory на предмет наличия источника данных о спутниках.
Вызовите startUpdates() и stopUpdates() для запуска и остановки регулярных обновлений или requestUpdate() для запроса одного обновления. Когда обновление доступно, будут испущены satellitesInViewUpdated() и/или satellitesInUseUpdated().
Если требуются регулярные обновления информации о спутниках, setUpdateInterval() можно использовать для указания частоты испускания этих обновлений. Если интервал не задан (или задан равным 0), источник будет предоставлять обновления так часто, как это необходимо.
Например:
// 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().
Функции доступа:
| виртуальный int | minimumUpdateInterval() const = 0 |
updateInterval : int
Это свойство содержит запрошенный интервал в миллисекундах между каждым обновлением.
Если интервал обновления не установлен (или установлен в 0), источник будет предоставлять обновления так часто, как это необходимо.
Если интервал обновления установлен, источник будет предоставлять обновления с интервалом, максимально приближенным к запрошенному интервалу. Если запрошенный интервал меньше minimumUpdateInterval(), используется минимальный интервал.
Изменения интервала обновления произойдут как можно скорее, однако время, затрачиваемое на изменение, может варьироваться в зависимости от реализации. Будет ли время, прошедшее с предыдущего интервала, учитываться в новом интервале, также зависит от реализации.
Значение по умолчанию для этого свойства — 0.
Примечание: реализации подклассов должны вызывать базовый метод реализации setUpdateInterval(), чтобы updateInterval() возвращал правильное значение.
Функции доступа:
| int | updateInterval() const |
| виртуальный 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] 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 = 0)
Попытка получения текущей информации о спутниках и выдача сигналов 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.9/qgeosatelliteinfosource.html