Класс QGeoSatelliteInfoSource
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках. Подробнее...
| Заголовок: | #include <QGeoSatelliteInfoSource> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.2.
Открытые типы
| перечисление | Ошибка { ОшибкаДоступа, ОшибкаЗакрытия, НетОшибок, ОшибкаНеизвестногоИсточника } |
Свойства
- minimumUpdateInterval : const int
- updateInterval : int
Открытые функции
| виртуальный | ~QGeoSatelliteInfoSource() |
| виртуальный QGeoSatelliteInfoSource::Ошибка | error() const = 0 |
| виртуальный int | minimumUpdateInterval() const = 0 |
| виртуальный void | setUpdateInterval(int msec) |
| QString | sourceName() const |
| int | updateInterval() const |
Открытые слоты
| виртуальный void | requestUpdate(int timeout = 0) = 0 |
| виртуальный void | startUpdates() = 0 |
| виртуальный void | stopUpdates() = 0 |
Сигналы
| void | error(QGeoSatelliteInfoSource::Ошибка satelliteError) |
| void | requestTimeout() |
| void | satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites) |
| void | satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites) |
Статические открытые члены
| 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::Ошибка
Перечисление Ошибка представляет ошибки, которые могут произойти.
| Постоянная | Значение | Описание |
|---|---|---|
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::Ошибка 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 = 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 содержит спутники, которые в настоящее время находятся в поле зрения.
[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.15/qgeosatelliteinfosource.html