QGeoPositionInfo Class

The QGeoPositionInfo class contains information gathered on a global position, direction and velocity at a particular point in time. More...

Header: #include <QGeoPositionInfo>

Public Types

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

Public Functions

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

Detailed Description

\inmoduleQtPositioning \ingroup QtPositioning-positioning \ingroup shared \since 5.2

A QGeoPositionInfo contains, at a minimum, a geographical coordinate and a timestamp. It may also have heading and speed measurements as well as estimates of the accuracy of the provided data.

See also QGeoPositionInfoSource.

Member Type Documentation

enum QGeoPositionInfo::Attribute

Defines the attributes for positional information.

ConstantValueDescription
QGeoPositionInfo::Direction0The bearing measured in degrees clockwise from true north to the direction of travel.
QGeoPositionInfo::GroundSpeed1The ground speed, in meters/sec.
QGeoPositionInfo::VerticalSpeed2The vertical speed, in meters/sec.
QGeoPositionInfo::MagneticVariation3The angle between the horizontal component of the magnetic field and true north, in degrees. Also known as magnetic declination. A positive value indicates a clockwise direction from true north and a negative value indicates a counter-clockwise direction.
QGeoPositionInfo::HorizontalAccuracy4The accuracy of the provided latitude-longitude value, in meters.
QGeoPositionInfo::VerticalAccuracy5The accuracy of the provided altitude value, in meters.
QGeoPositionInfo::DirectionAccuracy6The accuracy of the provided bearing, in degrees. This attribute is available only on Android (API level 26 or above) and macOS/iOS. See corresponding Android and Apple documentation for more details.

NMEA protocol also suggests another type of accuracy - PositionAccuracy, which is a 3D accuracy value. Qt does not provide a separate attribute for it. If you need this value, you can calculate it based on the following formula:

PositionAccuracy 2 = HorizontalAccuracy 2 + VerticalAccuracy 2

Member Function Documentation

QGeoPositionInfo::QGeoPositionInfo()

Creates an invalid QGeoPositionInfo object.

See also isValid().

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

Creates a QGeoPositionInfo for the given coordinate and timestamp.

QGeoPositionInfo::QGeoPositionInfo(const QGeoPositionInfo &other)

Creates a QGeoPositionInfo with the values of other.

[constexpr noexcept] QGeoPositionInfo::QGeoPositionInfo(QGeoPositionInfo &&other)

\since6.2

Creates a QGeoPositionInfo object by moving from other.

Note that a moved-from QGeoPositionInfo can only be destroyed or assigned to. The effect of calling other functions than the destructor or one of the assignment operators is undefined.

[noexcept] QGeoPositionInfo::~QGeoPositionInfo()

Destroys a QGeoPositionInfo object.

qreal QGeoPositionInfo::attribute(Attribute attribute) const

Returns the value of the specified attribute as a qreal value.

Returns NaN if the value has not been set.

The function hasAttribute() should be used to determine whether or not a value has been set for an attribute.

See also hasAttribute() and setAttribute().

QGeoCoordinate QGeoPositionInfo::coordinate() const

Returns the coordinate for this position.

Returns an invalid coordinate if no coordinate has been set.

See also setCoordinate().

void QGeoPositionInfo::detach()

\internal

bool QGeoPositionInfo::hasAttribute(Attribute attribute) const

Returns true if the specified attribute is present for this QGeoPositionInfo object.

bool QGeoPositionInfo::isValid() const

Returns true if the timestamp() and coordinate() values are both valid.

See also QGeoCoordinate::isValid() and QDateTime::isValid().

void QGeoPositionInfo::removeAttribute(Attribute attribute)

Removes the specified attribute and its value.

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

Sets the value for attribute to value.

See also attribute().

void QGeoPositionInfo::setCoordinate(const QGeoCoordinate &coordinate)

Sets the coordinate for this position to coordinate.

See also coordinate().

void QGeoPositionInfo::setTimestamp(const QDateTime &timestamp)

Sets the date and time at which this position was reported to timestamp.

The timestamp must be in UTC time.

See also timestamp().

QDateTime QGeoPositionInfo::timestamp() const

Returns the date and time at which this position was reported, in UTC time.

Returns an invalid QDateTime if no date/time value has been set.

See also setTimestamp().

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

Assigns the values from other to this QGeoPositionInfo.

[noexcept] QGeoPositionInfo &QGeoPositionInfo::operator=(QGeoPositionInfo &&other)

\since6.2

Move-assigns the values from other to this object.

Note that a moved-from QGeoPositionInfo can only be destroyed or assigned to. The effect of calling other functions than the destructor or one of the assignment operators is undefined.

Related Non-Members

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

Returns true if any of the lhs object's values are not the same as those of rhs. Otherwise returns false.

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

Writes the given info to the specified stream.

See also Serializing Qt Data Types.

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

Writes the given attr enumeration to the specified stream.

See also Serializing Qt Data Types.

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

Returns true if all of the lhs object's values are the same as those of rhs. Otherwise returns false.

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

Reads a coordinate from the specified stream into the given info.

See also Serializing Qt Data Types.

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

Reads an attribute enumeration from the specified stream info the given attr.

See also Serializing Qt Data Types.