- class QNmeaPositionInfoSource#
QNmeaPositionInfoSource
类使用 NMEA 数据源提供位置信息。更多…摘要#
方法#
def
__init__()
def
device()
def
setDevice()
def
setError()
定义
updateMode()
虚函数#
注意
本文档可能包含从 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])#
- 参数:
updateMode –
UpdateMode
parent –
QObject
使用给定的
parent
和updateMode
构造一个QNmeaPositionInfoSource
实例。返回NMEA数据源。
另请参阅
- parsePosInfoFromNmeaData(data, posInfo, hasFix)#
- 参数:
data –
QByteArrayView
posInfo –
QGeoPositionInfo
hasFix – bool
- 返回类型:
bool
- parsePosInfoFromNmeaData(data, size, posInfo, hasFix)
- 参数:
data – str
size – int
posInfo –
QGeoPositionInfo
hasFix – bool
- 返回类型:
bool
将NMEA句子字符串解析为
QGeoPositionInfo
.默认实现将解析标准NMEA句子。当需要处理非标准NMEA句子时,此方法应在子类中重写。
解析器从
data
中读取size
个字节,并使用该信息设置posInfo
和hasFix
。如果将hasFix
设置为 false,则posInfo
可能只包含时间或日期和时间。如果句子成功解析,则返回true,否则返回false,不应该修改
posInfo
或hasFix
。设置NMEA数据源为
device
。如果该设备没有打开,它将以QIODevice::ReadOnly模式打开。数据源设备只能设置一次,并且必须在调用
startUpdates()
或requestUpdate()
之前设置。注意
device
必须发射QIODevice::readyRead()事件,以便在可以读取数据时通知数据源。QNmeaPositionInfoSource
不假定对设备的所有权,因此在其销毁时不会释放它。另请参阅
- 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。
返回更新模式。
- userEquivalentRangeError()#
- 返回类型:
float
返回当前用户等效距离误差(UERE)。UERE用于计算位置信息源的准确度估计。默认值为NaN,意味着将不会提供准确度信息。