이 페이지에서

QNmeaPositionInfoSource Class

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

헤더: #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 소스와 관련된 사용자 등가 범위 오차(User Equivalent Range Error)의 추정값을 설정해야 합니다.

멤버 유형 설명서

enum QNmeaPositionInfoSource::UpdateMode

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

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

멤버 함수 설명서

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

지정된 ` parent ` 및 ` updateMode`을 사용하여 `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 바이트를 읽어들이고, 해당 정보를 사용하여 posInfo 및 hasFix 를 설정합니다. hasFix 가 false로 설정된 경우, posInfo 에는 시간만 포함되거나 날짜와 시간이 함께 포함될 수 있습니다.

문장이 성공적으로 구문 분석된 경우 true를 반환하고, 그렇지 않은 경우 false를 반환하며, 이 경우 posInfo 또는 hasFix 를 수정해서는 안 됩니다.

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

QGeoPositionInfoSource::requestUpdate(int timeout)을 재구현합니다.

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 정확도에 대한 자세한 내용은 Sam J. Wormley의 『GPS Errors & Estimating Your Receiver's Accuracy』를 참조하십시오.

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()도 참조하십시오 .

© 2026 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.