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 所有权。