Qt 定位插件
Qt 定位通过插件提供其大部分功能。本文档概述了如何开发一个新的位置插件。
默认插件
一些插件已经与 Qt 一起发货。这些是
| android | 包装 Android 定位子系统。仅限于 Android。 |
| corelocation | 包装 iOS 和 macOS 定位子系统。仅限支持 corelocation 的 Apple 平台。 |
| geoclue2 | 一个 GeoClue v2 后端,提供对 GeoClue v2 D-Bus 服务的接口。 |
| gypsy | 一个 Gypsy 后端,提供对 Gypsy 守护进程的接口。 |
| winrt | 包装 WinRT 定位子系统。仅限于 WinRT 和 Windows10。 |
| nmea | 一个 NMEA 后端,解析来自 GPS 接收器的 NMEA 流以提供位置更新。此插件可以使用串行端口、套接字或文件作为源。 |
| positionpoll | 一个仅通过轮询位置更新提供区域监控功能的后端。 |
插件描述
每个插件都由一个 json 文件描述。json 描述了插件的功能和版本。以下是 postionpoll 插件使用的 json 文件的示例
{
"Keys": ["positionpoll"],
"Provider": "positionpoll",
"Position": false,
"Satellite": false,
"Monitor": true,
"Priority": 1000,
"Testable": true
}条目有以下含义
| 键 | 描述 |
|---|---|
| 键 | 插件的唯一名称/键。每个位置插件都必须具有唯一名称。 |
| 提供商 | 服务提供商名称。多个插件可能有相同的名称。在这种情况下,版本字符串将用于进一步区分插件。 |
| 位置 | 如果插件实现了 QGeoPositionInfoSource,则设置为 true。 |
| 卫星 | 如果插件实现了 QGeoSatelliteInfoSource,则设置为 true。 |
| 监控 | 如果插件实现了 QGeoAreaMonitorSource,则设置为 true。 |
| 优先级 | 插件优先级。如果有多个插件具有相同的提供商名称,则将使用优先级最高的插件。 |
实现插件
插件实现者需要从 QGeoPositionInfoSourceFactory 继承并重写一个或多个其函数。如果插件不支持特定功能,则函数应返回 0 或利用默认实现。
© 2024 Qt 公司有限公司。本文件中包含的文档贡献归 respective owners 所有。提供的文档在 Free Software Foundation 发布的 GNU Free Documentation License 版本 1.3 条件下提供。Qt 和相关标志为芬兰以及全球其他地区的 The Qt Company Ltd. 的商标。所有其他商标均为 respective owners 所有权。