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