On this page
Qt Positioning service plugins
Qt Positioning provides the majority of its functionality through plugins. This document outlines how to develop a new position plugin.
Plugin Description
Each plugin is described by a json file. The json describes the plugins capabilities and version. Below is an example of a json file used by the postionpoll plugin:
{
    "Keys": ["positionpoll"],
    "Provider": "positionpoll",
    "Position": false,
    "Satellite": false,
    "Monitor": true,
    "Priority": 1000,
    "Testable": true
}The entries have the following meaning:
| Key | Description | 
|---|---|
| Keys | The unique name/key of the plugin. Each position plugin must have a unique name. | 
| Provider | The provider name of the services. Multiple plugins may have the same name. In such cases the Version string will be used to further distinguish the plugins. | 
| Position | Set to trueif the plugin implements a QGeoPositionInfoSource. | 
| Satellite | Set to trueif the plugin implements a QGeoSatelliteInfoSource. | 
| Monitor | Set to trueif the plugin implements a QGeoAreaMonitorSource. | 
| Priority | The plugin priority. If multiple plugins have the same provider name, the plugin with the higest priority will be used. | 
Implementing Plugins
A plugin implementer needs to subclass QGeoPositionInfoSourceFactory and override one or more of its functions. If a plugin does not support a specific feature the function should return 0 or utilize the default implementation.
- 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.6/qtpositioning-plugins.html