QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
Viewer3DGeoCoordinateType.cc
Go to the documentation of this file.
2
3#include "QGCGeo.h"
5
6QGC_LOGGING_CATEGORY(Viewer3DGeoCoordinateTypeLog, "Viewer3d.Viewer3DGeoCoordinateType")
7
8void Viewer3DGeoCoordinateType::_gpsToLocal()
9{
10 const QVector3D localPose = QGCGeo::convertGpsToEnu(_coordinate, _gpsRef);
11
12 if (_localCoordinate != localPose) {
13 _localCoordinate = localPose;
14 _localCoordinate.setZ(_coordinate.altitude());
15 emit localCoordinateChanged();
16 }
17}
18
19void Viewer3DGeoCoordinateType::setGpsRef(const QGeoCoordinate &newGpsRef)
20{
21 if (_gpsRef == newGpsRef) {
22 return;
23 }
24 _gpsRef = newGpsRef;
25 qCDebug(Viewer3DGeoCoordinateTypeLog) << "GPS ref set to" << _gpsRef;
26 _gpsToLocal();
27 emit gpsRefChanged();
28}
29
30void Viewer3DGeoCoordinateType::setCoordinate(const QGeoCoordinate &newCoordinate)
31{
32 if (_coordinate == newCoordinate) {
33 return;
34 }
35 _coordinate = newCoordinate;
36 _gpsToLocal();
37 emit coordinateChanged();
38}
Geographic coordinate conversion utilities using GeographicLib.
#define QGC_LOGGING_CATEGORY(name, categoryStr)
QVector3D convertGpsToEnu(const QGeoCoordinate &coord, const QGeoCoordinate &ref)
Definition QGCGeo.cc:80