Класс QGeoSatelliteInfoSource
Класс QGeoSatelliteInfoSource — это абстрактный базовый класс для распространения обновлений информации о спутниках. Подробнее...
| Заголовок: | #include <QGeoSatelliteInfoSource> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
| Наследует: | QObject |
Типы публичного интерфейса
| Перечисление | Ошибка { ОшибкаДоступа, ОшибкаЗакрытия, НетОшибок, ОшибкаНеизвестногоИсточника } |
Свойства
- minimumUpdateInterval : const int
- updateInterval : int
- 1 свойство унаследовано от QObject
Функции публичного интерфейса
| QGeoSatelliteInfoSource(QObject *parent) | |
| virtual | ~QGeoSatelliteInfoSource() |
| virtual Ошибка | error() const = 0 |
| virtual int | minimumUpdateInterval() const = 0 |
| virtual void | setUpdateInterval(int msec) |
| QString | sourceName() const |
| int | updateInterval() const |
- 31 функция унаследована от QObject
Свойства публичного интерфейса
| virtual void | requestUpdate(int timeout = 0) = 0 |
| virtual void | startUpdates() = 0 |
| virtual 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) |
- 11 статических членов унаследованы от 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().
Предупреждение: В Windows CE невозможно определить, поддерживает ли устройство GPS. По умолчанию источник данных о спутниках на устройстве Windows CE без поддержки GPS никогда не предоставит данные о спутниках.
Документация по типам членов
перечисление 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] Error QGeoSatelliteInfoSource::error() const
Возвращает последнюю произошедшую ошибку.
Это событие не генерируется, когда произошёл requestTimeout().
[signal] void QGeoSatelliteInfoSource::error(QGeoSatelliteInfoSource::Error satelliteError)
Это событие генерируется после возникновения ошибки. Параметр satelliteError описывает тип произошедшей ошибки.
Примечание: Событие error перегружено в этом классе. Для подключения к нему с помощью синтаксиса указателя на функцию необходимо указать тип события в статическом преобразовании, как показано в этом примере:
connect(geoSatelliteInfoSource, static_cast<void(QGeoSatelliteInfoSource::*)(QGeoSatelliteInfoSource::Error)>(&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/archives/qt-5.6/qgeosatelliteinfosource.html