QGeoPositionInfo Class

QGeoPositionInfo 类包含在特定时间点收集的有关全局位置、方向和速度的信息。更多

头文件: #include <QGeoPositionInfo>
CMake: find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning

公共类型

enum Attribute { Direction, GroundSpeed, VerticalSpeed, MagneticVariation, HorizontalAccuracy, …, DirectionAccuracy }

公共函数

QGeoPositionInfo()
QGeoPositionInfo(const QGeoCoordinate &coordinate, const QDateTime &timestamp)
QGeoPositionInfo(const QGeoPositionInfo &other)
(since 6.2) QGeoPositionInfo(QGeoPositionInfo &&other)
~QGeoPositionInfo()
qreal attribute(QGeoPositionInfo::Attribute attribute) const
QGeoCoordinate coordinate() const
bool hasAttribute(QGeoPositionInfo::Attribute attribute) const
bool isValid() const
void removeAttribute(QGeoPositionInfo::Attribute attribute)
void setAttribute(QGeoPositionInfo::Attribute attribute, qreal value)
void setCoordinate(const QGeoCoordinate &coordinate)
void setTimestamp(const QDateTime &timestamp)
(since 6.2) void swap(QGeoPositionInfo &other)
QDateTime timestamp() const
(since 6.2) QGeoPositionInfo &operator=(QGeoPositionInfo &&other)
QGeoPositionInfo &operator=(const QGeoPositionInfo &other)
bool operator!=(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)
QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)
QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info)
bool operator==(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)
QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info)
QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)

详细说明

QGeoPositionInfo 至少包含一个地理坐标和一个时间戳。它还可能包含航向和速度测量值,以及对所提供数据准确性的估计。

另请参阅 QGeoPositionInfoSource

成员类型文档

enum QGeoPositionInfo::Attribute

定义位置信息的属性。

常数说明
QGeoPositionInfo::Direction0方位(从真北方向行进方向顺时针方向测量的度数)。
QGeoPositionInfo::GroundSpeed1地面速度(米/秒)。
QGeoPositionInfo::VerticalSpeed2垂直速度,单位为米/秒。
QGeoPositionInfo::MagneticVariation3磁场水平分量与真北之间的夹角,单位为度。也称为磁偏角。正值表示从真北开始的顺时针方向,负值表示逆时针方向。
QGeoPositionInfo::HorizontalAccuracy4所提供纬度-经度值的精度,单位为米。
QGeoPositionInfo::VerticalAccuracy5所提供高度值的精度,以米为单位。
QGeoPositionInfo::DirectionAccuracy6所提供方位的精确度,单位为度。此属性仅适用于 Android(API 26 级或以上)和 macOS/iOS。有关详细信息,请参阅相应的AndroidApple文档。

NMEA 协议还提出了另一种精度类型--PositionAccuracy,它是一个 3D 精度值。Qt 没有为其提供单独的属性。如果您需要这个值,可以根据以下公式计算:

PositionAccuracy 2 = HorizontalAccuracy 2 + VerticalAccuracy 2

成员函数文档

QGeoPositionInfo::QGeoPositionInfo()

创建无效的 QGeoPositionInfo 对象。

另请参阅 isValid().

QGeoPositionInfo::QGeoPositionInfo(const QGeoCoordinate &coordinate, const QDateTime &timestamp)

为给定的coordinatetimestamp 创建 QGeoPositionInfo。

QGeoPositionInfo::QGeoPositionInfo(const QGeoPositionInfo &other)

使用other 的值创建 QGeoPositionInfo。

[noexcept, since 6.2] QGeoPositionInfo::QGeoPositionInfo(QGeoPositionInfo &&other)

通过从other 移动创建一个 QGeoPositionInfo 对象。

请注意,从移动的 QGeoPositionInfo 只能被销毁或赋值。调用析构函数或赋值操作符之外的其他函数的效果未定义。

此函数在 Qt 6.2 中引入。

[noexcept] QGeoPositionInfo::~QGeoPositionInfo()

销毁QGeoPositionInfo 对象。

qreal QGeoPositionInfo::attribute(QGeoPositionInfo::Attribute attribute) const

返回指定attribute 的 qreal 值。

如果未设置值,则返回 NaN。

应使用函数hasAttribute() 来确定属性值是否已被设置。

另请参阅 hasAttribute() 和setAttribute()。

QGeoCoordinate QGeoPositionInfo::coordinate() const

返回此位置的坐标。

如果没有设置坐标,则返回无效坐标。

另请参见 setCoordinate()。

bool QGeoPositionInfo::hasAttribute(QGeoPositionInfo::Attribute attribute) const

如果QGeoPositionInfo 对象中存在指定的attribute ,则返回 true。

bool QGeoPositionInfo::isValid() const

如果timestamp() 和coordinate() 值都有效,则返回 true。

另请参阅 QGeoCoordinate::isValid() 和QDateTime::isValid()。

void QGeoPositionInfo::removeAttribute(QGeoPositionInfo::Attribute attribute)

删除指定的attribute 及其值。

void QGeoPositionInfo::setAttribute(QGeoPositionInfo::Attribute attribute, qreal value)

attribute 的值设置为value

另请参阅 attribute() 。

void QGeoPositionInfo::setCoordinate(const QGeoCoordinate &coordinate)

将此位置的坐标设置为coordinate

另请参阅 coordinate() 。

void QGeoPositionInfo::setTimestamp(const QDateTime &timestamp)

设置向timestamp 报告该位置的日期和时间。

timestamp 必须是 UTC 时间。

另请参阅 timestamp() 。

[noexcept, since 6.2] void QGeoPositionInfo::swap(QGeoPositionInfo &other)

将该位置信息与other 互换。该操作速度非常快,而且从不出错。

此功能在 Qt 6.2 中引入。

QDateTime QGeoPositionInfo::timestamp() const

返回报告该位置的日期和时间(UTC 时间)。

如果没有设置日期/时间值,则返回无效的QDateTime

另请参阅 setTimestamp()。

[noexcept, since 6.2] QGeoPositionInfo &QGeoPositionInfo::operator=(QGeoPositionInfo &&other)

移动--将other 中的值赋值给此对象。

请注意,moved-fromQGeoPositionInfo 只能被销毁或赋值。调用析构函数或赋值操作符之外的其他函数的效果未定义。

此函数在 Qt 6.2 中引入。

QGeoPositionInfo &QGeoPositionInfo::operator=(const QGeoPositionInfo &other)

other 中的值分配给此QGeoPositionInfo

相关非会员

bool operator!=(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)

如果lhs 对象的任何值与rhs 的值不一致,则返回true 。否则返回false

QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)

将给定的attr 枚举写入指定的stream

另请参阅 序列化 Qt 数据类型

QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info)

将给定的info 写入指定的stream

另请参阅 序列化 Qt 数据类型

bool operator==(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)

如果lhs 对象的所有值都与rhs 相同,则返回true 。否则返回false

QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info)

将坐标从指定的stream 读取到给定的info 中。

另请参阅 序列化 Qt 数据类型

QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)

从指定的stream info 读取给定attr 的属性枚举。

另请参阅 序列化 Qt 数据类型

© 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.