Spec-Zone.ru › Qt 5.15

Плагины позиционирования Qt

Qt Positioning предоставляет большую часть своей функциональности через плагины. Этот документ описывает, как разработать новый плагин позиционирования.

Плагины по умолчанию

Некоторые плагины уже поставляются с Qt. Это:

android Оборачивает подсистему позиционирования Android. Доступен только на Android.
corelocation Оборачивает подсистемы позиционирования iOS и macOS. Доступен только на платформах Apple, поддерживающих corelocation.
geoclue Взаимодействует с GeoClue v0.12. Требуется наличие GeoClue 0.12 для работы.
geoclue2 Взаимодействует с GeoClue v2. Требуется наличие GeoClue v2 для работы.
gypsy Взаимодействует с демоном Gypsy. Требуется наличие Gypsy для работы.
winrt Оборачивает подсистему позиционирования WinRT. Доступен только на WinRT и Windows10.
serialnmea Бэкенд Serial NMEA, который анализирует потоки NMEA с GPS-приёмника по последовательному каналу для предоставления обновлений координат.
positionpoll Бэкенд, предоставляющий только функциональность мониторинга области путём опроса обновлений позиции.

Описание плагина

Каждый плагин описывается файлом json. Файл json описывает возможности и версию плагина. Ниже приведён пример файла json, используемого плагином positionpoll:

{
    "Keys": ["positionpoll"],
    "Provider": "positionpoll",
    "Position": false,
    "Satellite": false,
    "Monitor": true,
    "Priority": 1000,
    "Testable": true
}

Элементы имеют следующее значение:

Ключ Описание
Ключи Уникальное имя/ключ плагина. Каждый плагин позиционирования должен иметь уникальное имя.
Провайдер Имя провайдера сервисов. Несколько плагинов могут иметь одинаковое имя. В таких случаях для дальнейшего различения плагинов используется строка Version.
Позиция Установлено в true если плагин реализует QGeoPositionInfoSource.
Спутник Установлено в true если плагин реализует QGeoSatelliteInfoSource.
Мониторинг Установлено в true если плагин реализует QGeoAreaMonitorSource.
Приоритет Приоритет плагина. Если несколько плагинов имеют одинаковое имя провайдера, будет использован плагин с наивысшим приоритетом.

Реализация плагинов

Реализатор плагина должен унаследовать QGeoPositionInfoSourceFactory и переопределить одну или несколько его функций. Если плагин не поддерживает определённую функцию, функция должна возвращать 0 или использовать реализацию по умолчанию.

  • QGeoPositionInfoSourceFactory::areaMonitor()
  • QGeoPositionInfoSourceFactory::positionInfoSource()
  • QGeoPositionInfoSourceFactory::satelliteInfoSource()

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qtpositioning-plugins.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API