QGIS API Documentation 3.41.0-Master (3440c17df1d)
|
Handles logging of incoming GPS data to a vector layer. More...
#include <qgsvectorlayergpslogger.h>
Public Slots | |
void | endCurrentTrack () |
Ends the current track, storing it in the tracksLayer() if appropriate. | |
Public Member Functions | |
QgsVectorLayerGpsLogger (QgsGpsConnection *connection, QObject *parent=nullptr) | |
Constructor for QgsVectorLayerGpsLogger with the specified parent object. | |
~QgsVectorLayerGpsLogger () override | |
QString | destinationField (Qgis::GpsInformationComponent component) const |
Returns the destination field name for a specific GPS information component. | |
QgsVectorLayer * | pointsLayer () |
Returns the layer in which recorded GPS points will be stored. | |
void | setDestinationField (Qgis::GpsInformationComponent component, const QString &field) |
Sets a destination field name for a specific GPS information component. | |
void | setPointsLayer (QgsVectorLayer *layer) |
Sets the layer in which recorded GPS points should be stored. | |
void | setTracksLayer (QgsVectorLayer *layer) |
Sets the layer in which recorded GPS tracks should be stored. | |
void | setTransformContext (const QgsCoordinateTransformContext &context) override |
Sets the coordinate transform context to be used when transforming GPS coordinates. | |
void | setWriteToEditBuffer (bool buffer) |
Sets whether the logger will use the vector layer edit buffer for the destination layers. | |
QgsVectorLayer * | tracksLayer () |
Returns the layer in which recorded GPS tracks will be stored. | |
bool | writeToEditBuffer () const |
Returns true if the logger will use the vector layer edit buffer for the destination layers. | |
Public Member Functions inherited from QgsGpsLogger | |
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. | |
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. | |
Additional Inherited Members | |
Signals inherited from QgsGpsLogger | |
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. | |
Static Public Attributes inherited from QgsGpsLogger | |
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 inherited from QgsGpsLogger | |
void | addTrackVertex () |
Adds a track vertex at the current GPS location. | |
Protected Attributes inherited from QgsGpsLogger | |
int | mBlockGpsStateChanged = 0 |
Used to pause logging of incoming GPS messages. | |
QgsCoordinateReferenceSystem | mWgs84CRS |
WGS84 coordinate reference system. | |
Handles logging of incoming GPS data to a vector layer.
Definition at line 35 of file qgsvectorlayergpslogger.h.
QgsVectorLayerGpsLogger::QgsVectorLayerGpsLogger | ( | QgsGpsConnection * | connection, |
QObject * | parent = nullptr |
||
) |
Constructor for QgsVectorLayerGpsLogger with the specified parent object.
The logger will automatically record GPS information from the specified connection.
Definition at line 23 of file qgsvectorlayergpslogger.cpp.
|
override |
Definition at line 29 of file qgsvectorlayergpslogger.cpp.
QString QgsVectorLayerGpsLogger::destinationField | ( | Qgis::GpsInformationComponent | component | ) | const |
Returns the destination field name for a specific GPS information component.
Definition at line 72 of file qgsvectorlayergpslogger.cpp.
|
slot |
Ends the current track, storing it in the tracksLayer() if appropriate.
Definition at line 91 of file qgsvectorlayergpslogger.cpp.
QgsVectorLayer * QgsVectorLayerGpsLogger::pointsLayer | ( | ) |
Returns the layer in which recorded GPS points will be stored.
May be nullptr
if points are not being stored.
Definition at line 54 of file qgsvectorlayergpslogger.cpp.
void QgsVectorLayerGpsLogger::setDestinationField | ( | Qgis::GpsInformationComponent | component, |
const QString & | field | ||
) |
Sets a destination field name for a specific GPS information component.
Depending on the component, the field will either refer to the pointsLayer() or tracksLayer().
Fields stored in the pointsLayer() are:
Fields stored in the tracksLayer() are:
Definition at line 64 of file qgsvectorlayergpslogger.cpp.
void QgsVectorLayerGpsLogger::setPointsLayer | ( | QgsVectorLayer * | layer | ) |
Sets the layer in which recorded GPS points should be stored.
Definition at line 34 of file qgsvectorlayergpslogger.cpp.
void QgsVectorLayerGpsLogger::setTracksLayer | ( | QgsVectorLayer * | layer | ) |
Sets the layer in which recorded GPS tracks should be stored.
Definition at line 44 of file qgsvectorlayergpslogger.cpp.
|
overridevirtual |
Sets the coordinate transform context to be used when transforming GPS coordinates.
Reimplemented from QgsGpsLogger.
Definition at line 77 of file qgsvectorlayergpslogger.cpp.
|
inline |
Sets whether the logger will use the vector layer edit buffer for the destination layers.
If buffer is false
then the features will be written directly to the destination layer's data providers.
The default behavior is to use the edit buffer.
Definition at line 70 of file qgsvectorlayergpslogger.h.
QgsVectorLayer * QgsVectorLayerGpsLogger::tracksLayer | ( | ) |
Returns the layer in which recorded GPS tracks will be stored.
May be nullptr
if tracks are not being stored.
Definition at line 59 of file qgsvectorlayergpslogger.cpp.
|
inline |
Returns true
if the logger will use the vector layer edit buffer for the destination layers.
If false
then the features will be written directly to the destination layer's data providers.
The default behavior is to use the edit buffer.
Definition at line 59 of file qgsvectorlayergpslogger.h.