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() を呼び出して、1 回だけ更新を要求することができます。
どちらの場合も、位置情報はpositionUpdated() シグナルを介して受信され、lastKnownPosition() を使用して、最後に認識された位置にアクセスすることができる。
QNmeaPositionInfoSource は、水平位置と垂直位置の精度報告をサポートしています。位置精度の報告を有効にするには、NMEA ソースに関連付けられているユーザー等価レンジ誤差の推定値をsetUserEquivalentRangeError() で設定する必要があります。
メンバ・タイプのドキュメント
enum QNmeaPositionInfoSource::UpdateMode
利用可能な更新モードを定義します。
定数 | 値 | 説明 |
---|---|---|
QNmeaPositionInfoSource::RealTimeMode | 1 | 位置データは、利用可能になるとデータソースから読み込まれ、配信されます。位置データのライブ・ソース(GPSハードウェア・デバイスなど)を使用している場合は、このモードを使用します。 |
QNmeaPositionInfoSource::SimulationMode | 2 | NMEAソース・データのデータと時間情報は、データが最初に記録されたレートで位置更新を提供するために使用されます。このモードは、データソースに以前に記録された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タイムアウト)。
void QNmeaPositionInfoSource::setDevice(QIODevice *device)
NMEA データ・ソースをdevice に設定する。デバイスがオープンされていない場合は、ReadOnly モードでオープンされる。
ソース・デバイスは 1 回のみ設定でき、startUpdates() またはrequestUpdate() を呼び出す前に設定する必要があります。
注: device は、データの読み取りが可能になったときにソースに通知するため に、QIODevice::readyRead ()を発行する必要がある。QNmeaPositionInfoSource は、デバイスの所有権を想定していないため、破棄時にデバイスの割り当てを解 除しない。
device()も参照のこと 。
[override virtual]
void QNmeaPositionInfoSource::setUpdateInterval(int msec)
QGeoPositionInfoSource::updateInterval 。
void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)
User Equivalent Range Error (UERE) をuere に設定する。 UERE は、位置情報ソースから報告される位置情報の精度の推定値を計算する際に使用される。UERE は、NMEA ストリームを生成した GPS デバイスに適した値に設定する必要があります。
真のUERE値は、受信側のGPS機器によってもたらされる誤差だけでなく、衛星によってもたらされる誤差や大気を通過する信号伝搬遅延を含む複数の誤差源から計算されます。GPS精度の詳細については、Sam J. Wormley, GPS Errors & Estimating Your Reveiver'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
現在のユーザー等価範囲誤差(User Equivalent Range Error: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.