class QNmeaPositionInfoSource#

QNmeaPositionInfoSource 类使用 NMEA 数据源提供位置信息。更多

Inheritance diagram of PySide6.QtPositioning.QNmeaPositionInfoSource

摘要#

方法#

虚函数#

注意

本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题时,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式告知我们。

详细描述#

NMEA 是一种用于指定在特定时间点全球位置的常用协议。《code class="xref py py-class docutils literal notranslate">QNmeaPositionInfoSource`类读取 NMEA 数据,并将其用作`QGeoPositionInfo`对象的位置数据。

`QNmeaPositionInfoSource`实例可以工作在`RealTimeMode`或`SimulationMode`模式。这些模式允许从实时的位置数据源读取 NMEA 数据,或为了模拟目的从先前记录的 NMEA 数据中重放。

NMEA 数据的源通过 `setDevice()` 设置。

使用 `startUpdates()` 开始接收常规的位置更新,并使用 `stopUpdates()` 停止这些更新。如果您只需要偶尔更新,可以调用 `requestUpdate()` 来请求一次更新。

在两种情况下,位置信息都通过 `positionUpdated()` 信号接收,最后已知的位置可以通过 `lastKnownPosition()` 访问。

QNmeaPositionInfoSource 支持报告水平和垂直位置的确切性。要启用位置精确度报告,必须使用 `setUserEquivalentRangeError()` 设置与 NMEA 数据源相关联的用户等效 range 错误的估计。

classUpdateMode

定义可用的更新模式。

常量

描述

QNmeaPositionInfoSource.RealTimeMode

当位置数据可用时,从数据源读取并分发位置数据。如果您使用的是实时位置数据源(例如,GPS硬件设备),请使用此模式。

QNmeaPositionInfoSource.SimulationMode

使用原始记录的数据率和时间信息从NMEA数据源中获取数据和时间信息,以提供位置更新。如果数据源包含先前记录的NMEA数据,并且您想用于模拟,请使用此模式。

__init__(updateMode[, parent=None])#
参数:

使用给定的 parentupdateMode 构造一个 QNmeaPositionInfoSource 实例。

device()#
返回类型:

QIODevice

返回NMEA数据源。

另请参阅

setDevice()

parsePosInfoFromNmeaData(data, posInfo, hasFix)#
参数:
返回类型:

bool

parsePosInfoFromNmeaData(data, size, posInfo, hasFix)
参数:
返回类型:

bool

将NMEA句子字符串解析为 QGeoPositionInfo .

默认实现将解析标准NMEA句子。当需要处理非标准NMEA句子时,此方法应在子类中重写。

解析器从 data 中读取 size 个字节,并使用该信息设置 posInfohasFix。如果将 hasFix 设置为 false,则 posInfo 可能只包含时间或日期和时间。

如果句子成功解析,则返回true,否则返回false,不应该修改posInfohasFix

setDevice(source)#
参数:

sourceQIODevice

设置NMEA数据源为device。如果该设备没有打开,它将以QIODevice::ReadOnly模式打开。

数据源设备只能设置一次,并且必须在调用startUpdates()requestUpdate()之前设置。

注意

device必须发射QIODevice::readyRead()事件,以便在可以读取数据时通知数据源。QNmeaPositionInfoSource不假定对设备的所有权,因此在其销毁时不会释放它。

另请参阅

device()

setError(positionError)#
参数:

positionErrorError

setUserEquivalentRangeError(uere)#
参数:

uere – float

将用户等效距离误差(UERE)设置为uere。UERE用于计算位置信息源的准确度估计。应将UERE设置为一个适合生成NMEA流的GPS设备的值。

真实的UERE值由多个误差源计算得出,包括卫星引入的误差以及信号通过大气传播的延迟以及接收GPS设备引入的误差。有关GPS精度的详细信息,请参阅Sam J. Wormley, GPS Errors & Estimating Your Reveiver’s Accuracy

典型的UERE值大约是5.1。

updateMode()#
返回类型:

更新模式

返回更新模式。

userEquivalentRangeError()#
返回类型:

float

返回当前用户等效距离误差(UERE)。UERE用于计算位置信息源的准确度估计。默认值为NaN,意味着将不会提供准确度信息。