Qt Positioning

Qt Positioning API 凭借 QML 和 C++ 接口提供位置信息。

目前,API 支持 Android , iOS , macOS , Linux ,和 Windows (采用将 GPS 接收器暴露成串行端口提供 NMEA 句子或使用 Windows.Devices.Geolocation ).

概述

Qt Positioning API 允许通过使用各种可能的源 (包括卫星、wifi 或文本文件) 来确定位置。然后,可以使用该信息 (例如:确定地图位置)。此外,可以使用 API 以检索卫星信息并履行基于区域的监视。

使用模块

QML API

模块的 QML 类型是可用的透过 QtPositioning 导入。要使用类型,添加以下 import 语句到 .qml 文件:

import QtPositioning
					

C++ API

使用 Qt 模块的 C++ API 要求直接 (或透过其它依赖) 链接到模块库。几个构建工具对此有专用支持,包括 CMake and qmake .

构建采用 CMake

使用 find_package() 命令定位所需模块组件在 Qt6 包:

find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
					

更多细节,见 构建采用 CMake 概述。

采用 qmake 构建

要配置采用 qmake 构建模块,添加模块作为值为 QT 变量在工程的 .pro 文件:

QT += positioning
					

权限

从 Qt 6.6 起,Qt Positioning 模块使用新 QPermission API 处理 location 权限。这意味着 Qt 自身不再查询这些权限,所以,做到这需要直接从客户端应用程序。

请参考 应用程序权限 页了解范例如何集成新 QPermission API 进应用程序。

文章和指南

范例

参考

模块演变

Qt Positioning 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能上所做出的重要改变。

许可

Qt Positioning 在商业许可下是可用的来自 Qt 公司 。此外,它在自由软件许可下也是可用的。从 Qt 5.4 起,这些自由软件许可是 GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。