PySide6.QtPositioning.QNmeaPositionInfoSource

class QNmeaPositionInfoSource

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

PySide6.QtPositioning.QNmeaPositionInfoSource 的继承图

概要

方法

虚拟方法

注意

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

详细描述

NMEA 是一种常用的协议,用于指定某人在某个时间点的全球位置。QNmeaPositionInfoSource 类读取 NMEA 数据,并使用它以 QGeoPositionInfo 对象的形式提供位置数据。

一个QNmeaPositionInfoSource实例可以在RealTimeModeSimulationMode中运行。这些模式允许从实时位置数据源读取NMEA数据,或者从先前记录的NMEA数据中回放以进行模拟。

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

使用 startUpdates() 开始接收定期的位置更新,使用 stopUpdates() 停止这些更新。如果你只需要偶尔的更新,可以调用 requestUpdate() 来请求一次单独的更新。

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

QNmeaPositionInfoSource 支持报告水平和垂直位置的精度。要启用位置精度报告,必须使用 setUserEquivalentRangeError() 设置与NMEA源相关的用户等效范围误差的估计值。

class UpdateMode

定义可用的更新模式。

常量

描述

QNmeaPositionInfoSource.RealTimeMode

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

QNmeaPositionInfoSource.SimulationMode

NMEA源数据中的日期和时间信息用于以数据最初记录的速率提供位置更新。如果数据源包含先前记录的NMEA数据,并且您希望为了模拟目的重放数据,请使用此模式。

__init__(updateMode[, parent=None])
Parameters:

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

device()
Return type:

QIODevice

返回NMEA数据源。

另请参阅

setDevice()

parsePosInfoFromNmeaData(data, posInfo, hasFix)
Parameters:
Return type:

布尔

parsePosInfoFromNmeaData(data, size, posInfo, hasFix)
Parameters:
  • data – 字符串

  • size – int

  • posInfoQGeoPositionInfo

  • hasFix – 布尔值

Return type:

布尔

将NMEA句子字符串解析为QGeoPositionInfo

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

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

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

setDevice(source)
Parameters:

QIODevice

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

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

注意

device 必须发出 QIODevice::readyRead() 以便在有数据可供读取时通知源。QNmeaPositionInfoSource 不拥有该设备的所有权,因此在销毁时不会释放它。

另请参阅

device()

setError(positionError)
Parameters:

positionErrorError

setUserEquivalentRangeError(uere)
Parameters:

uere – 浮点数

将用户等效范围误差(UERE)设置为uere。UERE用于计算位置信息源报告的位置信息的准确性估计。UERE应设置为适合生成NMEA流的GPS设备的值。

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

UERE的典型值大约为5.1。

updateMode()
Return type:

UpdateMode

返回更新模式。

userEquivalentRangeError()
Return type:

浮点数

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