Класс InfoLocationInfo
(Sailfish::Mdm::LocationInfo)
Класс LocationInfo предоставляет данные о местоположении устройства. Подробнее…
Заголовочный файл: | #include <mdm-location.h> |
Публичные типы
- class Position
Свойства
- altitude : const double
- latitude : const double
- longitude : const double
- position : const Position
- satellitesInUse : const int
- satellitesInView : const int
- timestamp : const QDateTime
Публичные методы
- LocationInfo(QObject *parent = Q_NULLPTR)
- ~LocationInfo()
- double altitude() const
- double latitude() const
- double longitude() const
- Position position() const
- void requestUpdate()
- int satellitesInUse() const
- int satellitesInView() const
- void startUpdates()
- void stopUpdates()
- QDateTime timestamp() const
Сигналы
- void positionChanged()
- void satellitesChanged()
Подробное описание
Класс LocationInfo предоставляет данные о местоположении устройства.
С его помощью клиентские приложения могут получать информацию о местоположении устройства при условии, что включён какой-либо из методов геопозиционирования.
Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:
CONFIG += link_pkgconfig
PKGCONFIG += sailfishmdm
и затем #include <mdm-location.h>
.
Пример использования:
#include <mdm-location.h>
void listenForLocationChange(QObject *parent)
{
Sailfish::Mdm::LocationInfo *info = new Sailfish::Mdm::LocationInfo(parent);
QObject::connect(info, &Sailfish::Mdm::LocationInfo::positionChanged, [info] {
qInfo() << "GPS: Координаты:" << info->latitude()
<< "," << info->longitude();
});
info->requestUpdate();
}
Описание свойств
altitude : const double
Содержит значение высоты устройства над уровнем моря, полученное в результате последнего обновления данных геопозиционирования.
Если высота устройства не известна (например, если ни один из поставщиков данных геопозиционирования не предоставил пока соответствующей информации), метод вернёт константу Not-A-Number типа double.
При получении обновлённых данных геопозиционирования испускается сигнал positionChanged().
Методы доступа:
- double altitude() const
Сигнал уведомления:
- void positionChanged()
latitude : const double
Содержит значение географической широты устройства, полученное в результате последнего обновления данных геопозиционирования.
Если широта устройства не известна (например, если ни один из поставщиков данных геопозиционирования не предоставил пока соответствующей информации), метод вернёт константу Not-A-Number типа double.
При получении обновлённых данных геопозиционирования испускается сигнал positionChanged().
Методы доступа:
- double latitude() const
Сигнал уведомления:
- void positionChanged()
longitude : const double
Содержит значение географической долготы устройства, полученное в результате последнего обновления данных геопозиционирования.
Если долгота устройства не известна (например, если ни один из поставщиков данных геопозиционирования не предоставил пока соответствующей информации), метод вернёт константу Not-A-Number типа double.
При получении обновлённых данных геопозиционирования испускается сигнал positionChanged().
Методы доступа:
- double longitude() const
Сигнал уведомления:
- void positionChanged()
position : const Position
Содержит последнее полученное обновление данных о геопозиционировании устройства.
Значение этого свойства обновляется всякий раз при получении обновления от одного из поставщиков данных о геопозиционировании.
Следует обратить внимание, что данные геопозиционирования могут быть устаревшими, если клиентское приложение вызывало метод requestUpdate() сравнительно давно или же если не была оформлена подписка на обновления данных геопозиционирования с помощью метода startUpdates().
Методы доступа:
- Position position() const
Сигнал уведомления:
- void positionChanged()
satellitesInUse : const int
Содержит количество используемых в настоящий момент GPS-спутников.
Следует обратить внимание, что поставщик услуг GPS сможет предоставить точные данные только в том случае, если используется не менее 4 спутников.
При изменении количества используемых спутников или спутников в области видимости испускается сигнал satellitesChanged().
Методы доступа:
- int satellitesInUse() const
Сигнал уведомления:
- void satellitesChanged()
satellitesInView : const int
Содержит количество GPS-спутников, находящихся в настоящий момент в области видимости.
Это значение берется из данных GPS-альманаха.
При изменении количества используемых спутников или спутников в области видимости испускается сигнал satellitesChanged().
Методы доступа:
- int satellitesInView() const
Сигнал уведомления:
- void satellitesChanged()
timestamp : const QDateTime
Содержит значение временной метки, полученное в результате последнего обновления данных геопозиционирования.
Метод вернёт некорректное значение, если до настоящего времени ни от одного из поставщиков информации о геопозиционировании не было получено какой-либо информации.
При получении обновлённых данных геопозиционирования испускается сигнал positionChanged().
Методы доступа:
- QDateTime timestamp() const
Сигнал уведомления:
- void positionChanged()
Описание методов класса
LocationInfo::LocationInfo(QObject *parent = Q_NULLPTR)
Конструктор по умолчанию для класса LocationInfo.
LocationInfo::~LocationInfo()
Деструктор для класса LocationInfo.
[signal] void LocationInfo::positionChanged()
Сигнал испускается при получении обновления от одного из поставщиков данных о геопозиционировании. Клиентские приложения получат этот сигнал только в том случае, если в них перед этим были вызваны методы requestUpdate() или startUpdates().
Примечание — Сигнал уведомления для свойства altitude. Сигнал уведомления для свойства latitude. Сигнал уведомления для свойства longitude. Сигнал уведомления для свойства position. Сигнал уведомления для свойства timestamp.
void LocationInfo::requestUpdate()
Запрашивает обновление данных о позиционировании и спутниках из подключённых поставщиков соответствующей информации.
[signal] void LocationInfo::satellitesChanged()
Сигнал испускается при изменении количества используемых спутников или спутников в области видимости согласно данным поставщика услуг геопозиционирования. Клиентские приложения получат этот сигнал только в том случае, если в них перед этим были вызваны методы requestUpdate() или startUpdates().
Примечание — Сигнал уведомления для свойства satellitesInUse. Сигнал уведомления для свойства satellitesInView.
void LocationInfo::startUpdates()
Подписывает клиентское приложение на обновления данных геопозиционирования от одного из подключённых поставщиков соответствующей информации (включая GPS и aGPS).
void LocationInfo::stopUpdates()
Отменяет подписку для клиентского приложения на обновления данных геопозиционирования от одного из подключённых поставщиков соответствующей информации (включая GPS и aGPS).
В случае, если клиентское приложение было последним активным подписчиком, поставщик услуг геопозиционирования отключит GPS оборудование, также будут завершены все запущенные процессы поставщика услуг aGPS.