Класс QGeoSatelliteInfoSource
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках. Подробнее...
| Заголовок: | #include <QGeoSatelliteInfoSource> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.2.
Типы public
| Перечисление | Error { AccessError, ClosedError, NoError, UnknownSourceError } |
Свойства
- minimumUpdateInterval : const int
- updateInterval : int
Функции public
| виртуальный | ~QGeoSatelliteInfoSource() |
| виртуальный QGeoSatelliteInfoSource::Error | error() const = 0 |
| виртуальный int | minimumUpdateInterval() const = 0 |
| виртуальный void | setUpdateInterval(int msec) |
| QString | sourceName() const |
| int | updateInterval() const |
Свойства public
| виртуальный void | requestUpdate(int timeout = ...) = 0 |
| виртуальный void | startUpdates() = 0 |
| виртуальный void | stopUpdates() = 0 |
Сигналы
| void | error(QGeoSatelliteInfoSource::Error satelliteError) |
| void | requestTimeout() |
| void | satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites) |
| void | satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites) |
Статические public члены
| QStringList | availableSources() |
| QGeoSatelliteInfoSource * | createDefaultSource(QObject *parent) |
| QGeoSatelliteInfoSource * | createDefaultSource(const QVariantMap ¶meters, QObject *parent) |
| QGeoSatelliteInfoSource * | createSource(const QString &sourceName, QObject *parent) |
| QGeoSatelliteInfoSource * | createSource(const QString &sourceName, const QVariantMap ¶meters, QObject *parent) |
Подробное описание
Статическая функция 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) |
Документация по функциям-членам
[signal] void QGeoSatelliteInfoSource::error(QGeoSatelliteInfoSource::Error satelliteError)
Этот сигнал генерируется после возникновения ошибки. Параметр satelliteError описывает тип произошедшей ошибки.
Примечание: Сигнал ошибка перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя функции 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 содержит спутники, которые в данный момент находятся в поле зрения.
[pure virtual slot] void QGeoSatelliteInfoSource::startUpdates()
Начинает выдавать обновления с регулярными интервалами. Обновления будут предоставляться всякий раз, когда появляется новая информация о спутниках.
Если информация о спутнике не может быть получена или произошел какой-либо другой таймаут, сигналы satellitesInViewUpdated() и satellitesInUseUpdated() могут быть вызваны с пустыми параметрами.
См. также satellitesInViewUpdated() и satellitesInUseUpdated().
[pure virtual slot] void QGeoSatelliteInfoSource::stopUpdates()
Останавливает выдачу обновлений с регулярными интервалами.
[virtual] QGeoSatelliteInfoSource::~QGeoSatelliteInfoSource()
Удаляет источник спутников.
[static] QStringList QGeoSatelliteInfoSource::availableSources()
Возвращает список доступных плагинов источников, включая системный по умолчанию, если он доступен.
[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(QObject *parent)
Создает и возвращает источник со заданным parent, который считывает информацию о обновлении спутников из системного источника по умолчанию или плагина с наивысшим приоритетом.
Возвращает 0, если у системы нет системного источника спутников, не найдены плагины или пользователю не разрешен доступ к данным спутников.
[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(const QVariantMap ¶meters, QObject *parent)
Создаёт и возвращает источник спутников с заданным parent, который считывает информацию о данных спутников из системных источников по умолчанию или плагина с наивысшим приоритетом.
Возвращает nullptr, если у системы нет системного источника спутников, не найдены плагины или пользователю не разрешен доступ к информации о спутниках.
Этот метод передаёт parameters фабрике для настройки источника.
Эта функция была введена в Qt 5.14.
[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createSource(const QString &sourceName, QObject *parent)
Создаёт и возвращает источник со заданным parent, загружая плагин с именем sourceName.
Возвращает 0, если плагин не найден.
[static] QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createSource(const QString &sourceName, const QVariantMap ¶meters, QObject *parent)
Создаёт и возвращает источник спутников с заданным parent, загружая плагин с именем sourceName.
Возвращает nullptr, если плагин не найден.
Этот метод передаёт parameters фабрике для настройки источника.
Эта функция была введена в Qt 5.14.
[pure virtual] QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSource::error() const
Возвращает последнюю произошедшую ошибку.
Этот сигнал не вызывается, когда произошел requestTimeout().
QString QGeoSatelliteInfoSource::sourceName() const
Возвращает уникальное имя используемой реализации источника спутников.
Это то же самое имя, которое можно передать в createSource() для создания нового экземпляра конкретной реализации источника спутников.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qgeosatelliteinfosource.html