QNmeaPositionInfoSource Class

QNmeaPositionInfoSource 클래스는 NMEA 데이터 소스를 사용하여 위치 정보를 제공합니다. 더 보기...

Header: #include <QNmeaPositionInfoSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning
상속합니다: QGeoPositionInfoSource

공용 타입

enum UpdateMode { RealTimeMode, SimulationMode }

공용 함수

QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)
virtual ~QNmeaPositionInfoSource()
QIODevice *device() const
void setDevice(QIODevice *device)
void setUserEquivalentRangeError(double uere)
QNmeaPositionInfoSource::UpdateMode updateMode() const
double userEquivalentRangeError() const

재구현된 공용 함수

virtual QGeoPositionInfoSource::Error error() const override
virtual QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const override
virtual int minimumUpdateInterval() const override
virtual void setUpdateInterval(int msec) override
virtual QGeoPositionInfoSource::PositioningMethods supportedPositioningMethods() const override

공용 슬롯

virtual void requestUpdate(int msec = 0) override
virtual void startUpdates() override
virtual void stopUpdates() override

보호된 함수

virtual bool parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

상세 설명

NMEA는 특정 시점의 글로벌 위치를 지정하는 데 일반적으로 사용되는 프로토콜입니다. QNmeaPositionInfoSource 클래스는 NMEA 데이터를 읽고 이를 사용하여 QGeoPositionInfo 객체 형식으로 위치 데이터를 제공합니다.

QNmeaPositionInfoSource 인스턴스는 RealTimeMode 또는 SimulationMode 에서 작동합니다. 이러한 모드를 사용하면 위치 데이터의 라이브 소스에서 NMEA 데이터를 읽거나 이전에 기록된 NMEA 데이터에서 시뮬레이션 목적으로 재생할 수 있습니다.

NMEA 데이터의 소스는 setDevice()로 설정됩니다.

정기적인 위치 업데이트를 받으려면 startUpdates()를 사용하고 이러한 업데이트를 중지하려면 stopUpdates()를 사용합니다. 가끔씩만 업데이트가 필요한 경우 requestUpdate()를 호출하여 단일 업데이트를 요청할 수 있습니다.

두 경우 모두 위치 정보는 positionUpdated() 신호를 통해 수신되며, 마지막으로 알려진 위치는 lastKnownPosition()로 액세스할 수 있습니다.

QNmeaPositionInfoSource는 수평 및 수직 위치의 정확도 보고를 지원합니다. 위치 정확도 보고를 활성화하려면 setUserEquivalentRangeError()로 NMEA 소스와 관련된 사용자 등가 범위 오차 추정치를 설정해야 합니다.

멤버 유형 문서

enum QNmeaPositionInfoSource::UpdateMode

사용 가능한 업데이트 모드를 정의합니다.

Constant설명
QNmeaPositionInfoSource::RealTimeMode1위치 데이터가 사용 가능해지면 데이터 소스에서 위치 데이터를 읽고 배포합니다. 위치 데이터의 라이브 소스(예: GPS 하드웨어 장치)를 사용하는 경우 이 모드를 사용합니다.
QNmeaPositionInfoSource::SimulationMode2NMEA 소스 데이터의 데이터 및 시간 정보는 데이터가 원래 기록된 속도로 위치 업데이트를 제공하는 데 사용됩니다. 데이터 소스에 이전에 기록된 NMEA 데이터가 포함되어 있고 시뮬레이션 목적으로 데이터를 재생하려는 경우 이 모드를 사용합니다.

멤버 기능 문서

[explicit] QNmeaPositionInfoSource::QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)

주어진 parentupdateMode 로 QNmeaPositionInfoSource 인스턴스를 생성합니다.

[virtual noexcept] QNmeaPositionInfoSource::~QNmeaPositionInfoSource()

위치 소스를 파괴합니다.

QIODevice *QNmeaPositionInfoSource::device() const

NMEA 데이터 소스를 반환합니다.

setDevice()도 참조하세요 .

[override virtual] QGeoPositionInfoSource::Error QNmeaPositionInfoSource::error() const

재구현합니다: QGeoPositionInfoSource::error() const.

[override virtual] QGeoPositionInfo QNmeaPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const

재구현합니다: QGeoPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly) const.

[override virtual] int QNmeaPositionInfoSource::minimumUpdateInterval() const

속성에 대한 액세스 함수를 다시 구현합니다: QGeoPositionInfoSource::minimumUpdateInterval.

[virtual protected] bool QNmeaPositionInfoSource::parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

NMEA 문장 문자열을 QGeoPositionInfo 로 구문 분석합니다.

기본 구현은 표준 NMEA 문장을 구문 분석합니다. 이 메서드는 비표준 NMEA 문장을 처리해야 할 때마다 하위 클래스에서 다시 구현해야 합니다.

구문 분석기는 data 에서 size 바이트를 읽고 해당 정보를 사용하여 posInfohasFix 를 설정합니다. hasFix 가 false로 설정된 경우 posInfo 에는 시간 또는 날짜와 시간만 포함될 수 있습니다.

문장이 성공적으로 구문 분석되면 참을 반환하고, 그렇지 않으면 거짓을 반환하며 posInfo 또는 hasFix 을 수정해서는 안 됩니다.

[override virtual slot] void QNmeaPositionInfoSource::requestUpdate(int msec = 0)

다시 구현합니다: QGeoPositionInfoSource::requestUpdate(int 시간 초과).

void QNmeaPositionInfoSource::setDevice(QIODevice *device)

NMEA 데이터 소스를 device 로 설정합니다. 장치가 열려 있지 않으면 ReadOnly 모드로 열립니다.

소스 장치는 한 번만 설정할 수 있으며 startUpdates() 또는 requestUpdate()을 호출하기 전에 설정해야 합니다.

참고: device 은 데이터를 읽을 수 있을 때 소스에 알리기 위해 QIODevice::readyRead()을 전송해야 합니다. QNmeaPositionInfoSource 은 장치의 소유권을 인수하지 않으므로 파기 시 소유권을 할당하지 않습니다.

device()도 참조하세요 .

[override virtual] void QNmeaPositionInfoSource::setUpdateInterval(int msec)

속성에 대한 액세스 함수를 다시 구현합니다: QGeoPositionInfoSource::updateInterval.

void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)

UERE(사용자 등가 범위 오차)를 uere 로 설정합니다. UERE는 위치 정보 소스에서 보고한 위치 정보의 정확도 추정치를 계산하는 데 사용됩니다. UERE는 NMEA 스트림을 생성한 GPS 장치에 적합한 값으로 설정해야 합니다.

실제 UERE 값은 위성에 의해 발생하는 오차, 대기를 통한 신호 전파 지연, 수신 GPS 장비에 의해 발생하는 오차 등 여러 오차 소스에서 계산됩니다. GPS 정확도에 대한 자세한 내용은 GPS 오류 및 수신기의 정확도 추정하기(Sam J. Wormley)를 참조하세요.

UERE의 일반적인 값은 약 5.1입니다.

userEquivalentRangeError()도 참조하세요 .

[override virtual slot] void QNmeaPositionInfoSource::startUpdates()

다시 구현합니다: QGeoPositionInfoSource::startUpdates().

[override virtual slot] void QNmeaPositionInfoSource::stopUpdates()

다시 구현합니다: QGeoPositionInfoSource::stopUpdates().

[override virtual] QGeoPositionInfoSource::PositioningMethods QNmeaPositionInfoSource::supportedPositioningMethods() const

재구현합니다: QGeoPositionInfoSource::supportedPositioningMethods() const.

QNmeaPositionInfoSource::UpdateMode QNmeaPositionInfoSource::updateMode() const

업데이트 모드를 반환합니다.

double QNmeaPositionInfoSource::userEquivalentRangeError() const

현재 사용자 등가 범위 오차(UERE)를 반환합니다. UERE는 위치 정보 소스에서 보고한 위치 정보의 정확도 추정치를 계산하는 데 사용됩니다. 기본값은 NaN으로 정확도 정보가 제공되지 않습니다.

setUserEquivalentRangeError()도 참조하세요 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.