Skip to content
Snippets Groups Projects
Commit 0e8bfc1f authored by Boulongne Corentin's avatar Boulongne Corentin
Browse files

modified trackmarker func

parent 1b91fb2f
No related branches found
No related tags found
No related merge requests found
......@@ -49,6 +49,8 @@ private slots:
void on_pushButton_2_clicked();
void trackMarker();
private:
Ui::GpsMapViewWidget *ui;
QTimer *gpsDataTimer;
......@@ -62,7 +64,7 @@ private:
ros::Subscriber testSub;
int mID;
QString markerName_;
QString markerName_ = "";
double longi = 0.0;
double lati = 0.0;
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.0, 2022-04-28T18:20:05. -->
<!-- Written by QtCreator 4.11.0, 2022-04-29T14:38:48. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
......
......@@ -48,7 +48,6 @@ GpsMapViewWidget::GpsMapViewWidget(QWidget *parent) :
subInfoData = nh.subscribe("/gps/fix", 100, &GpsMapViewWidget::getInfo, this);
subUbloxData = nh.subscribe("/ublox/fix", 100, &GpsMapViewWidget::getUbloxData, this); // topic a changer.
ui->doubleSpinBox->setValue(7);
}
GpsMapViewWidget::~GpsMapViewWidget()
......@@ -145,13 +144,13 @@ void GpsMapViewWidget::on_checkBoxClicked(int state)
mID = (nb_markers-1)+1; // id qui s'incremente
markerName_ = "marker"+QString::number(mID);
markerName_ = "marker"+chboxName;
//std::cout << markerName_.toStdString() << std::endl;
QMetaObject::invokeMethod(obj, "addMarker", Q_ARG(QVariant, mID), Q_ARG(QVariant, markerName), Q_ARG(QVariant, latitude), Q_ARG(QVariant, longitude));
QTimer::connect(gpsDataTimer, SIGNAL(timeout()), this, SLOT(poseublx()));
QTimer::connect(gpsDataTimer, SIGNAL(timeout()), this, SLOT(trackMarker() )) ;
std::cout << "this checkbox (" << cb->text().toStdString() << ") checked." << std::endl;
......@@ -175,7 +174,7 @@ void GpsMapViewWidget::on_checkBoxClicked(int state)
QMetaObject::invokeMethod(obj, "removeMarker", Q_ARG(QVariant, indexToRemove)); // will remove last marker
QTimer::disconnect(gpsDataTimer, nullptr, this , SLOT(poseublx())); // disconnect timer to avoid crash due to out of index bounds
QTimer::disconnect(gpsDataTimer, nullptr, this , SLOT(trackMarker()) ); // disconnect timer to avoid crash due to out of index bounds
......@@ -211,6 +210,51 @@ void GpsMapViewWidget::aller()
}
void GpsMapViewWidget::trackMarker()
{
QQuickItem *item = ui->quickWidget->rootObject();
QObject *obj = item->findChild<QObject *>("locationList");
QList<QQuickItem*> mapItem = item->findChildren<QQuickItem*>("mapItemView");
auto test_2 = mapItem.at(0);
auto mapItemChild = test_2->childItems();
int nb_markers = mapItemChild.count(); //return nb of markers
QStringList listOfMarkers;
for(int j = 0; j < nb_markers; j++)
{
listOfMarkers << mapItemChild.at(j)->objectName();
}
int idx = listOfMarkers.indexOf(markerName_);
auto marker_id = mapItemChild.at(idx); // throw error if index is out of range -> app crash.
QVariant latitude = QString::number(ulati);
QVariant longitude = QString::number(ulongi);
if(marker_id != nullptr)
{
QMetaObject::invokeMethod(marker_id, "track", Q_ARG(QVariant, latitude), Q_ARG(QVariant, longitude));
std::cout << "track function called!" << std::endl;
}
GpsMapViewWidget::afficherPosition(QString::number(lati), QString::number(longi));
}
// function to delete -> replaced by trackMarker
void GpsMapViewWidget::poseublx()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment