QGeoPositionInfo 类

QGeoPositionInfo 类包含在特定时间内关于全球位置、方向和速度收集的信息。 更多...

头文件 #include <QGeoPositionInfo>
CMakefind_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmakeQT += positioning

公共类型

枚举属性 { 方向, 地面速度, 竖直速度, 磁差, 水平精度, …, 方向精度 }

公共函数

QGeoPositionInfo()
QGeoPositionInfo(const QGeoCoordinate &coordinate, const QDateTime &timestamp)
QGeoPositionInfo(const QGeoPositionInfo &other)
(自 6.2) QGeoPositionInfo(QGeoPositionInfo &&other)
~QGeoPositionInfo()
qreal属性(QGeoPositionInfo::Attribute attribute) const
QGeoCoordinate坐标() const
bool是否有属性(QGeoPositionInfo::Attribute attribute) const
bool是否有效() const
void移除属性(QGeoPositionInfo::Attribute attribute)
void设置属性(QGeoPositionInfo::Attribute attribute, qreal value)
void设置坐标(const QGeoCoordinate &coordinate)
void设置时间戳(const QDateTime &timestamp)
QDateTime时间戳() const
QGeoPositionInfo &操作符=(const QGeoPositionInfo &other)
(自 6.2) QGeoPositionInfo &操作符=(QGeoPositionInfo &&other)
bool操作符!=(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)
QDataStream &操作符<<(QDataStream &stream, const QGeoPositionInfo &info)
QDataStream &操作符<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)
bool操作符==(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)
QDataStream &操作符>>(QDataStream &stream, QGeoPositionInfo &info)
QDataStream &操作符>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)

详细描述

A QGeoPositionInfo 至少包含地理坐标和时间戳。它还可以包含航向和速度测量以及提供数据的精度估计。

另见 QGeoPositionInfoSource.

成员类型文档

枚举 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

以qreal值返回指定的属性的值。

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

应使用函数hasAttribute()来判断是否为属性设置了值。

另请参阅hasAttribute()和setAttribute

QGeoCoordinate QGeoPositionInfo::coordinate() const

返回位置坐标。

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

另请参阅setCoordinate

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

如果指定的属性存在于此QGeoPositionInfo对象中,则返回true。

bool QGeoPositionInfo::isValid() const

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

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

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

删除指定的属性及其值。

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

属性的值设置为value

另请参阅attribute

void QGeoPositionInfo::setCoordinate(const QGeoCoordinate &coordinate)

将此位置坐标设置为coordinate

另请参阅coordinate

void QGeoPositionInfo::setTimestamp(const QDateTime &timestamp)

将报告此位置的时间戳设置为timestamp

timestamp必须是UTC时间。

另请参阅timestamp

QDateTime QGeoPositionInfo::timestamp() const

返回报告此位置的时间戳,采用UTC时间。

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

另请参阅setTimestamp

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

other的值分配给此QGeoPositionInfo

[无异常,自6.2版本起] QGeoPositionInfo &QGeoPositionInfo::operator=(QGeoPositionInfo &&other)

将其他对象中的值移动赋值到当前对象。

注意,移动后的 QGeoPositionInfo 只能被销毁或赋值。调用其他(除析构函数或赋值运算符之外的)函数的效果是未定义的。

此函数从 Qt 6.2 开始引入。

相关非成员

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

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

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

将给定 info 写入指定的 stream

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

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

将给定的 attr 枚举写入指定的 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 读取属性枚举到给定的 attr

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

© 2024 Qt 公司版权所有。其中包括的文档贡献为各自所有者的版权。所提供的文档是根据由自由软件基金会发表的 GNU 自由文档许可协议版本 1.3 的条款授权的。Qt 以及相应的标志是芬兰以及/或全世界 Qt 公司的商标。所有其他商标均为各自所有者的财产。