Qt Positioning 安卓插件
概述
Qt Positioning Android 插件封装了本地 Android 应用程序接口,可提供定位和卫星信息访问。
可使用提供程序名称android 加载该插件。
参数
下表列出了可传递给 Android 插件的参数。
参数 | 说明 |
---|---|
useMslAltitude | 该参数在 Qt 6.8 中引入。它决定插件是否会尝试提供高于平均海平面(MSL)的高度。默认值为false ,这意味着它以 WGS84 格式提供海拔高度。该参数仅适用于 Android 14 及更高版本。更多详情,请参阅 "海拔高度转换"部分。 |
海拔高度转换
传统上,Android 提供的是 1984 年世界大地测量系统(WGS84)参考椭球之上的海拔高度。不过,从 Android 14 开始,引入了一个新的AltitudeConverter类。该类可将 WGS84 高度转换为高于平均海平面(MSL)的高度格式。
如果useMslAltitude
插件参数设置为true
,且应用程序在Android 14或更高版本上运行,则在位置更新期间检索的QGeoPositionInfo 对象的QGeoCoordinate::altitude 组件将包含 MSL 海拔高度。
注: 根据 Android文档,转换为 MSL 高度可能需要数秒时间。这意味着启用该功能后,lastKnownPosition() 请求的执行时间可能会更长,因为该方法是同步的。其他位置更新请求不受影响。
示例
以下示例展示了如何用 C++ 和 QML 创建一个Android PositionSource 。
QML
以下代码段创建了一个无参数的PositionSource 。高度将以 WGS84 格式报告。
PositionSource { name: "android" }
下一个代码段明确添加了useMslAltitude
PluginParameter 并将其值设置为true
。该PositionSource 将以 MSL 格式报告高度。
PositionSource { name: "android" PluginParameter { name: "useMslAltitude" value: true } }
C++
以下代码段展示了如何使用 C++ 创建一个以 MSL 格式报告海拔高度的position source 。
QVariantMap params; params["useMslAltitude"] = true; QGeoPositionInfoSource *positionSource = QGeoPositionInfoSource::createSource("android", params, this);
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.