QGIS API Documentation 3.41.0-Master (45a0abf3bec)
|
Base class for objects which log incoming GPS data. More...
#include <qgsgpslogger.h>
Signals | |
void | distanceAreaChanged () |
Emitted whenever the distance area used to calculate track distances is changed. | |
void | stateChanged (const QgsGpsInformation &info) |
Emitted whenever the associated GPS device state is changed. | |
void | trackIsEmptyChanged (bool isEmpty) |
Emitted whenever the current track changes from being empty to non-empty or vice versa. | |
void | trackReset () |
Emitted whenever the current track is reset. | |
void | trackVertexAdded (const QgsPoint &vertex) |
Emitted whenever a new vertex is added to the track. | |
Public Member Functions | |
QgsGpsLogger (QgsGpsConnection *connection, QObject *parent=nullptr) | |
Constructor for QgsGpsLogger with the specified parent object. | |
~QgsGpsLogger () override | |
bool | automaticallyAddTrackVertices () const |
Returns true if track vertices will be automatically added whenever the GPS position is changed. | |
QVariant | componentValue (Qgis::GpsInformationComponent component) const |
Returns the value of the corresponding GPS information component. | |
QgsGpsConnection * | connection () |
Returns the associated GPS connection. | |
QgsGeometry | currentGeometry (Qgis::WkbType type, QString &error) const |
Returns the current logged GPS positions as a geometry of the specified type. | |
QVector< QgsPoint > | currentTrack () const |
Returns the recorded points in the current track. | |
const QgsDistanceArea & | distanceArea () const |
Returns the distance area calculator which should be used for calculating distances associated with the GPS log. | |
double | lastElevation () const |
Returns the last recorded elevation the device. | |
double | lastMValue () const |
Returns the last recorded value corresponding to the QgsGpsLogger::settingsGpsMValueComponent setting. | |
QgsPointXY | lastPosition () const |
Returns the last recorded position of the device. | |
QDateTime | lastTimestamp () const |
Returns the last recorded timestamp from the device. | |
void | resetTrack () |
Resets the current track, discarding all recorded points. | |
void | setAutomaticallyAddTrackVertices (bool enabled) |
Sets whether track vertices will be automatically added whenever the GPS position is changed. | |
void | setConnection (QgsGpsConnection *connection) |
Sets the associated GPS connection. | |
void | setEllipsoid (const QString &ellipsoid) |
Sets the ellipsoid which will be used for calculating distances in the log. | |
virtual void | setTransformContext (const QgsCoordinateTransformContext &context) |
Sets the coordinate transform context to be used when transforming GPS coordinates. | |
double | totalTrackLength () const |
Returns the total length of the current digitized track (in meters). | |
double | trackDistanceFromStart () const |
Returns the direct length from the first vertex in the track to the last (in meters). | |
QDateTime | trackStartTime () const |
Returns the timestamp at which the current track was started. | |
QgsCoordinateTransformContext | transformContext () const |
Returns the coordinate transform context to be used when transforming GPS coordinates. | |
void | updateGpsSettings () |
Should be called whenever the QGIS GPS settings are changed. | |
Static Public Attributes | |
static const QgsSettingsEntryInteger * | settingsAcquisitionInterval = new QgsSettingsEntryInteger( QStringLiteral( "acquisitionInterval" ), QgsSettingsTree::sTreeGps, 0 ) |
static const QgsSettingsEntryBool * | settingsApplyLeapSeconds = new QgsSettingsEntryBool( QStringLiteral( "applyLeapSeconds" ), QgsSettingsTree::sTreeGps, true ) |
static const QgsSettingsEntryDouble * | settingsDistanceThreshold = new QgsSettingsEntryDouble( QStringLiteral( "distanceThreshold" ), QgsSettingsTree::sTreeGps, 0 ) |
static const QgsSettingsEntryEnumFlag< Qgis::GpsInformationComponent > * | settingsGpsMValueComponent = new QgsSettingsEntryEnumFlag<Qgis::GpsInformationComponent>( QStringLiteral( "m-value-attribute" ), QgsSettingsTree::sTreeGps, Qgis::GpsInformationComponent::Timestamp, QStringLiteral( "Which GPS attribute should be stored in geometry m values" ) ) |
Settings entry dictating which GPS attribute should be stored in geometry M values. | |
static const QgsSettingsEntryBool * | settingsGpsStoreAttributeInMValues = new QgsSettingsEntryBool( QStringLiteral( "store-attribute-in-m-values" ), QgsSettingsTree::sTreeGps, false, QStringLiteral( "Whether GPS attributes should be stored in geometry m values" ) ) |
Settings entry for whether storing GPS attributes as geometry M values should be enabled. | |
static const QgsSettingsEntryInteger * | settingsLeapSecondsCorrection = new QgsSettingsEntryInteger( QStringLiteral( "leapSecondsCorrection" ), QgsSettingsTree::sTreeGps, 18 ) |
static const QgsSettingsEntryInteger * | settingsTimeStampFormat = new QgsSettingsEntryInteger( QStringLiteral( "timeStampFormat" ), QgsSettingsTree::sTreeGps, Qt::LocalTime ) |
static const QgsSettingsEntryString * | settingsTimestampTimeZone = new QgsSettingsEntryString( QStringLiteral( "timestampTimeZone" ), QgsSettingsTree::sTreeGps, QString() ) |
Protected Member Functions | |
void | addTrackVertex () |
Adds a track vertex at the current GPS location. | |
Protected Attributes | |
int | mBlockGpsStateChanged = 0 |
Used to pause logging of incoming GPS messages. | |
QgsCoordinateReferenceSystem | mWgs84CRS |
WGS84 coordinate reference system. | |
Friends | |
class | TestQgsGpsIntegration |
Base class for objects which log incoming GPS data.
This class handles generic logic regarding logging GPS data, such as creation of tracks from incoming GPS location points.
Definition at line 55 of file qgsgpslogger.h.
QgsGpsLogger::QgsGpsLogger | ( | QgsGpsConnection * | connection, |
QObject * | parent = nullptr |
||
) |
Constructor for QgsGpsLogger with the specified parent object.
The logger will automatically record GPS information from the specified connection.
Definition at line 42 of file qgsgpslogger.cpp.
|
override |
Definition at line 60 of file qgsgpslogger.cpp.
|
protected |
Adds a track vertex at the current GPS location.
Definition at line 459 of file qgsgpslogger.cpp.
bool QgsGpsLogger::automaticallyAddTrackVertices | ( | ) | const |
Returns true
if track vertices will be automatically added whenever the GPS position is changed.
Definition at line 480 of file qgsgpslogger.cpp.
QVariant QgsGpsLogger::componentValue | ( | Qgis::GpsInformationComponent | component | ) | const |
Returns the value of the corresponding GPS information component.
Definition at line 300 of file qgsgpslogger.cpp.
QgsGpsConnection * QgsGpsLogger::connection | ( | ) |
Returns the associated GPS connection.
Definition at line 65 of file qgsgpslogger.cpp.
QgsGeometry QgsGpsLogger::currentGeometry | ( | Qgis::WkbType | type, |
QString & | error | ||
) | const |
Returns the current logged GPS positions as a geometry of the specified type.
The returned geometries will always be in the WGS84 (EPSG:4326) coordinate reference system.
type | desired geometry type |
error | Will be set to a user-friendly error if the logged positions could not be converted to an appropriate geometry |
Definition at line 113 of file qgsgpslogger.cpp.
QVector< QgsPoint > QgsGpsLogger::currentTrack | ( | ) | const |
Returns the recorded points in the current track.
These points will always be in WGS84 coordinate reference system.
Definition at line 108 of file qgsgpslogger.cpp.
const QgsDistanceArea & QgsGpsLogger::distanceArea | ( | ) | const |
Returns the distance area calculator which should be used for calculating distances associated with the GPS log.
Definition at line 103 of file qgsgpslogger.cpp.
|
signal |
Emitted whenever the distance area used to calculate track distances is changed.
double QgsGpsLogger::lastElevation | ( | ) | const |
Returns the last recorded elevation the device.
Definition at line 194 of file qgsgpslogger.cpp.
double QgsGpsLogger::lastMValue | ( | ) | const |
Returns the last recorded value corresponding to the QgsGpsLogger::settingsGpsMValueComponent setting.
Definition at line 199 of file qgsgpslogger.cpp.
QgsPointXY QgsGpsLogger::lastPosition | ( | ) | const |
Returns the last recorded position of the device.
The returned point will always be in WGS84 coordinate reference system.
Definition at line 189 of file qgsgpslogger.cpp.
QDateTime QgsGpsLogger::lastTimestamp | ( | ) | const |
Returns the last recorded timestamp from the device.
The returned time value will respect all user settings regarding GPS time zone handling.
Definition at line 490 of file qgsgpslogger.cpp.
void QgsGpsLogger::resetTrack | ( | ) |
Resets the current track, discarding all recorded points.
Definition at line 204 of file qgsgpslogger.cpp.
void QgsGpsLogger::setAutomaticallyAddTrackVertices | ( | bool | enabled | ) |
Sets whether track vertices will be automatically added whenever the GPS position is changed.
Definition at line 485 of file qgsgpslogger.cpp.
void QgsGpsLogger::setConnection | ( | QgsGpsConnection * | connection | ) |
Sets the associated GPS connection.
Definition at line 70 of file qgsgpslogger.cpp.
void QgsGpsLogger::setEllipsoid | ( | const QString & | ellipsoid | ) |
Sets the ellipsoid which will be used for calculating distances in the log.
Definition at line 85 of file qgsgpslogger.cpp.
|
virtual |
Sets the coordinate transform context to be used when transforming GPS coordinates.
Reimplemented in QgsVectorLayerGpsLogger.
Definition at line 91 of file qgsgpslogger.cpp.
|
signal |
Emitted whenever the associated GPS device state is changed.
double QgsGpsLogger::totalTrackLength | ( | ) | const |
Returns the total length of the current digitized track (in meters).
The returned length is calculated using ellipsoidal calculations.
Definition at line 267 of file qgsgpslogger.cpp.
double QgsGpsLogger::trackDistanceFromStart | ( | ) | const |
Returns the direct length from the first vertex in the track to the last (in meters).
The returned length is calculated using ellipsoidal calculations.
Definition at line 283 of file qgsgpslogger.cpp.
|
signal |
Emitted whenever the current track changes from being empty to non-empty or vice versa.
|
signal |
Emitted whenever the current track is reset.
QDateTime QgsGpsLogger::trackStartTime | ( | ) | const |
Returns the timestamp at which the current track was started.
The returned time value will respect all user settings regarding GPS time zone handling.
Definition at line 533 of file qgsgpslogger.cpp.
|
signal |
Emitted whenever a new vertex is added to the track.
The vertex point will be in WGS84 coordinate reference system.
QgsCoordinateTransformContext QgsGpsLogger::transformContext | ( | ) | const |
Returns the coordinate transform context to be used when transforming GPS coordinates.
Definition at line 98 of file qgsgpslogger.cpp.
void QgsGpsLogger::updateGpsSettings | ( | ) |
Should be called whenever the QGIS GPS settings are changed.
Definition at line 219 of file qgsgpslogger.cpp.
|
friend |
Definition at line 312 of file qgsgpslogger.h.
|
mutableprotected |
Used to pause logging of incoming GPS messages.
Definition at line 263 of file qgsgpslogger.h.
|
protected |
WGS84 coordinate reference system.
Definition at line 260 of file qgsgpslogger.h.
|
static |
Definition at line 69 of file qgsgpslogger.h.
|
static |
Definition at line 61 of file qgsgpslogger.h.
|
static |
Definition at line 71 of file qgsgpslogger.h.
|
static |
Settings entry dictating which GPS attribute should be stored in geometry M values.
Definition at line 78 of file qgsgpslogger.h.
|
static |
Settings entry for whether storing GPS attributes as geometry M values should be enabled.
Definition at line 75 of file qgsgpslogger.h.
|
static |
Definition at line 67 of file qgsgpslogger.h.
|
static |
Definition at line 65 of file qgsgpslogger.h.
|
static |
Definition at line 63 of file qgsgpslogger.h.