1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

OP-761 Fix visualization of UAV GPS coordinates for CC/CC3D

When positionActual is (0,0,0) uses GPS position as the UAV position

+review OPReview
This commit is contained in:
Alessio Morale 2013-05-26 19:42:16 +02:00
parent 78dda599f5
commit 6e277906e2

View File

@ -2170,6 +2170,19 @@ bool OPMapGadgetWidget::getUAVPosition(double &latitude, double &longitude, doub
Q_ASSERT(obm != NULL);
PositionActual *positionActual = PositionActual::GetInstance(obm);
Q_ASSERT(positionActual != NULL);
PositionActual::DataFields positionActualData = positionActual->getData();
if(positionActualData.North == 0 && positionActualData.East == 0 && positionActualData.Down == 0){
GPSPosition *gpsPositionObj = GPSPosition::GetInstance(obm);
Q_ASSERT(gpsPositionObj);
GPSPosition::DataFields gpsPositionData = gpsPositionObj->getData();
latitude = gpsPositionData.Latitude / 1e7f;
longitude = gpsPositionData.Longitude / 1e7f;
altitude = gpsPositionData.Altitude;
return true;
}
HomeLocation *homeLocation = HomeLocation::GetInstance(obm);
Q_ASSERT(homeLocation != NULL);
HomeLocation::DataFields homeLocationData = homeLocation->getData();
@ -2178,9 +2191,6 @@ bool OPMapGadgetWidget::getUAVPosition(double &latitude, double &longitude, doub
homeLLA[1] = homeLocationData.Longitude / 1e7;
homeLLA[2] = homeLocationData.Altitude;
PositionActual *positionActual = PositionActual::GetInstance(obm);
Q_ASSERT(positionActual != NULL);
PositionActual::DataFields positionActualData = positionActual->getData();
NED[0] = positionActualData.North;
NED[1] = positionActualData.East;