diff --git a/images/earth.html b/images/earth.html
index 2f6a70aa8bb20691d6848210c230fc323f4e1d33..825826a252b2f431d886f4126d0c6559c8d6907b 100644
--- a/images/earth.html
+++ b/images/earth.html
@@ -142,7 +142,8 @@ function createAircraft(id, type, color)
aircraft[id] = planePlacemark;
attitudes[id] = planeOrient;
aircraftLocations[id] = planeLoc;
- aircraftLastLocations[id] = ge.createLocation('');
+ aircraftLastLocations[id] = ge.createLocation('');
+ aircraftColors[id] = color;
//planeColor = color;
createTrail(id, color);
@@ -189,6 +190,12 @@ function showTrail(id)
trailsVisible[id] = true;
}
+function startTrail(id)
+{
+ createTrail(id, trailColors[id]);
+ trailsVisible[id] = true;
+}
+
function setViewRange(dist)
{
currViewRange = dist;
diff --git a/src/ui/map3D/QGCGoogleEarthView.cc b/src/ui/map3D/QGCGoogleEarthView.cc
index 52cbb30f0b825769eb144c9eeaba930756e57b27..c72e3ee36cf70b0f1ff365eb9fa20121d97e832f 100644
--- a/src/ui/map3D/QGCGoogleEarthView.cc
+++ b/src/ui/map3D/QGCGoogleEarthView.cc
@@ -151,6 +151,20 @@ void QGCGoogleEarthView::updateGlobalPosition(UASInterface* uas, double lon, dou
//qDebug() << QString("addTrailPosition(%1, %2, %3, %4);").arg(uas->getUASID()).arg(lat, 0, 'f', 15).arg(lon, 0, 'f', 15).arg(alt, 0, 'f', 15);
}
+void QGCGoogleEarthView::clearTrail()
+{
+ // Check if the current trail has to be hidden
+ if (trailEnabled && !state)
+ {
+ QList mavs = UASManager::instance()->getUASList();
+ foreach (UASInterface* currMav, mavs)
+ {
+ javaScript(QString("clearTrail(%1);").arg(currMav->getUASID()));
+ javaScript(QString("startTrail(%1);").arg(currMav->getUASID()));
+ }
+ }
+}
+
void QGCGoogleEarthView::showTrail(bool state)
{
// Check if the current trail has to be hidden
@@ -159,7 +173,7 @@ void QGCGoogleEarthView::showTrail(bool state)
QList mavs = UASManager::instance()->getUASList();
foreach (UASInterface* currMav, mavs)
{
- javaScript(QString("hideTrail(%1);").arg(currMav->getUASID()));
+ javaScript(QString("clearTrail(%1);").arg(currMav->getUASID()));
}
}
@@ -344,6 +358,9 @@ void QGCGoogleEarthView::initializeGoogleEarth()
ui->trailCheckbox->setChecked(trailEnabled);
connect(ui->trailCheckbox, SIGNAL(toggled(bool)), this, SLOT(showTrail(bool)));
+ // Clear trail button
+ connect(ui->clearTrailButton, SIGNAL(clicked()), this, SLOT(clearTrail()));
+
// Go home
connect(ui->goHomeButton, SIGNAL(clicked()), this, SLOT(goHome()));
diff --git a/src/ui/map3D/QGCGoogleEarthView.h b/src/ui/map3D/QGCGoogleEarthView.h
index 80131dc7ed1079d3a23d133a797a2a4169c0450f..c9c84f079cb84b9fa1cbc5b818b0f943a879416e 100644
--- a/src/ui/map3D/QGCGoogleEarthView.h
+++ b/src/ui/map3D/QGCGoogleEarthView.h
@@ -82,6 +82,8 @@ public slots:
void setActiveUAS(UASInterface* uas);
/** @brief Update the global position */
void updateGlobalPosition(UASInterface* uas, double lon, double lat, double alt, quint64 usec);
+ /** @brief Clear the existing vehicle trails */
+ void clearTrail();
/** @brief Show the vehicle trail */
void showTrail(bool state);
/** @brief Show the waypoints */