Qt Positioning provides the majority of its functionality through plugins. This document outlines how to develop a new position plugin.
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 | 描述 |
---|---|
键 | 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
true
if the plugin implements a
QGeoPositionInfoSource
.
|
Satellite |
Set to
true
if the plugin implements a
QGeoSatelliteInfoSource
.
|
Monitor |
Set to
true
if the plugin implements a
QGeoAreaMonitorSource
.
|
优先级 | The plugin priority. If multiple plugins have the same provider name, the plugin with the higest priority will be used. |
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.