From 6540c2230baeebf30f3d96c1927b3f00c93d4387 Mon Sep 17 00:00:00 2001 From: lm Date: Wed, 26 Jan 2011 16:33:24 +0100 Subject: [PATCH] Added option to clear Google Earth trails --- images/earth.html | 9 ++++++++- src/ui/map3D/QGCGoogleEarthView.cc | 19 ++++++++++++++++++- src/ui/map3D/QGCGoogleEarthView.h | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/images/earth.html b/images/earth.html index 2f6a70aa8..825826a25 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 52cbb30f0..c72e3ee36 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 80131dc7e..c9c84f079 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 */ -- 2.22.0