Плагины сервиса позиционирования Qt
Qt Positioning предоставляет большую часть своей функциональности через плагины. В этом документе описано, как разработать новый плагин позиционирования.
Описание плагина
Каждый плагин описывается файлом json. Файл json описывает возможности и версию плагина. Ниже приведен пример файла json, используемого плагином postionpoll:
{
"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/archives/qt-5.11/qtpositioning-plugins.html