Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qtpositioning-plugins.qdoc
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
3
4/*!
5\page qtpositioning-plugins.html
6\title Qt Positioning Plugins
7\brief Default Plugins and Implementing Qt Positioning plugins
8
9Qt Positioning provides the majority of its functionality through plugins.
10This document outlines how to develop a new position plugin.
11
12\section1 Default plugins
13Some plugins already ship with Qt. These are:
14
15\table
16 \row
17 \li \b android
18 \li Wraps \l {Qt Positioning Android plugin}{Android} positioning subsystem.
19 Available only on Android.
20 \row
21 \li \b corelocation
22 \li Wraps iOS and macOS positioning subsystems. Available only on Apple platforms supporting corelocation.
23 \row
24 \li \b geoclue2
25 \li A \l {Qt Positioning GeoClue v2 plugin}{GeoClue v2} backend that
26 provides an interface to the GeoClue v2 D-Bus service.
27 \row
28 \li \b gypsy
29 \li A \l {Qt Positioning Gypsy plugin}{Gypsy} backend that provides
30 an interface to the Gypsy daemon.
31 \row
32 \li \b winrt
33 \li Wraps WinRT positioning subsystem. Available only on WinRT and Windows10.
34 \row
35 \li \b nmea
36 \li An \l {Qt Positioning NMEA plugin}{NMEA} backend that parses NMEA
37 streams from a GPS receiver to provide position updates. This plugin can
38 use serial port, socket or file as a source.
39 \row
40 \li \b positionpoll
41 \li A backend providing only area monitoring functionalities via polling on position updates.
42\endtable
43
44
45\section1 Plugin Description
46
47Each plugin is described by a json file. The json describes the plugins capabilities and
48version. Below is an example of a json file used by the postionpoll plugin:
49
50\quotefile ../../../plugins/position/positionpoll/plugin.json
51
52The entries have the following meaning:
53
54\table
55 \header
56 \li Key
57 \li Description
58 \row
59 \li Keys
60 \li The unique name/key of the plugin. Each position plugin must have a unique name.
61 \row
62 \li Provider
63 \li The provider name of the services. Multiple plugins may have the same name.
64 In such cases the Version string will be used to further distinguish the plugins.
65 \row
66 \li Position
67 \li Set to \c true if the plugin implements a \l QGeoPositionInfoSource.
68 \row
69 \li Satellite
70 \li Set to \c true if the plugin implements a \l QGeoSatelliteInfoSource.
71 \row
72 \li Monitor
73 \li Set to \c true if the plugin implements a \l QGeoAreaMonitorSource.
74 \row
75 \li Priority
76 \li The plugin priority. If multiple plugins have the same provider name, the plugin
77 with the higest priority will be used.
78\endtable
79
80\section1 Implementing Plugins
81
82A plugin implementer needs to subclass \l QGeoPositionInfoSourceFactory and override one or more of
83its functions. If a plugin does not support a specific feature the function should return 0 or
84utilize the default implementation.
85
86\list
87 \li \l QGeoPositionInfoSourceFactory::areaMonitor()
88 \li \l QGeoPositionInfoSourceFactory::positionInfoSource()
89 \li \l QGeoPositionInfoSourceFactory::satelliteInfoSource()
90\endlist
91*/