|
@@ -97,23 +97,15 @@ void DialogAddRoadFromRTK::calcrelxy(double flon0, double flat0, double flon, do
|
|
|
rely = y - y0;
|
|
|
|
|
|
}
|
|
|
-void DialogAddRoadFromRTK::on_pushButton_LoadData_clicked()
|
|
|
-{
|
|
|
- QString str = QFileDialog::getOpenFileName(this,tr("Open RTK Data"),"",tr("Lane File(*.csv)"));
|
|
|
- if(str.isEmpty())return;
|
|
|
|
|
|
+
|
|
|
+std::vector<iv::rtkdata> DialogAddRoadFromRTK::loadrtkdata(QString strfilepath,double & flon0,double & flat0,OpenDrive * pxodr)
|
|
|
+{
|
|
|
QFile xFile;
|
|
|
- xFile.setFileName(str);
|
|
|
- QFileInfo fi(str);
|
|
|
- QString filename = fi.fileName();
|
|
|
- if(filename.contains(".txt"))
|
|
|
- {
|
|
|
- filename = filename.left(filename.length() -4);
|
|
|
- }
|
|
|
+ xFile.setFileName(strfilepath);
|
|
|
|
|
|
- ui->plainTextEdit->clear();
|
|
|
- mvectorrtkdata.clear();
|
|
|
- ui->plainTextEdit->appendPlainText(QString("Longitude\tLatitude\tHeight\trelx\trely"));
|
|
|
+ std::vector<iv::rtkdata> xvectorrtkdata;
|
|
|
+ xvectorrtkdata.clear();
|
|
|
|
|
|
if(xFile.open(QIODevice::ReadWrite))
|
|
|
{
|
|
@@ -138,7 +130,7 @@ void DialogAddRoadFromRTK::on_pushButton_LoadData_clicked()
|
|
|
strheight = strheight.left(strheight.size() -2);
|
|
|
fheight = strheight.toDouble();
|
|
|
|
|
|
- calcrelxy(mlon0,mlat0,flon,flat,frelx,frely);
|
|
|
+ calcrelxy(flon0,flat0,flon,flat,frelx,frely);
|
|
|
|
|
|
iv::rtkdata xdata;
|
|
|
xdata.mflat = flat;
|
|
@@ -146,27 +138,25 @@ void DialogAddRoadFromRTK::on_pushButton_LoadData_clicked()
|
|
|
xdata.mfrelx = frelx;
|
|
|
xdata.mfrely = frely;
|
|
|
xdata.mheight = fheight;
|
|
|
- if(mvectorrtkdata.size() < 1)
|
|
|
+ if(xvectorrtkdata.size() < 1)
|
|
|
{
|
|
|
xdata.mfrels = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- xdata.mfrels = mvectorrtkdata[mvectorrtkdata.size()-1].mfrels
|
|
|
- +sqrt(pow(mvectorrtkdata[mvectorrtkdata.size()-1].mfrelx - frelx,2)+pow(mvectorrtkdata[mvectorrtkdata.size()-1].mfrely - frely,2));
|
|
|
+ xdata.mfrels = xvectorrtkdata[xvectorrtkdata.size()-1].mfrels
|
|
|
+ +sqrt(pow(xvectorrtkdata[xvectorrtkdata.size()-1].mfrelx - frelx,2)+pow(xvectorrtkdata[xvectorrtkdata.size()-1].mfrely - frely,2));
|
|
|
}
|
|
|
- mvectorrtkdata.push_back(xdata);
|
|
|
+ xvectorrtkdata.push_back(xdata);
|
|
|
|
|
|
if(i==nstartline)
|
|
|
{
|
|
|
- if(mpxodr->GetRoadCount()<1)
|
|
|
+ if(pxodr->GetRoadCount()<1)
|
|
|
{
|
|
|
- glat0 = flat;
|
|
|
- glon0 = flon;
|
|
|
- mlon0 = glon0;
|
|
|
- mlat0 = glat0;
|
|
|
- calcrelxy(mlon0,mlat0,flon,flat,frelx,frely);
|
|
|
- mvectorrtkdata.clear();
|
|
|
+ flat0 = flat;
|
|
|
+ flon0 = flon;
|
|
|
+ calcrelxy(flon0,flat0,flon,flat,frelx,frely);
|
|
|
+ xvectorrtkdata.clear();
|
|
|
iv::rtkdata xdata;
|
|
|
xdata.mflat = flat;
|
|
|
xdata.mflon = flon;
|
|
@@ -174,24 +164,151 @@ void DialogAddRoadFromRTK::on_pushButton_LoadData_clicked()
|
|
|
xdata.mfrely = frely;
|
|
|
xdata.mheight = fheight;
|
|
|
xdata.mfrels = 0;
|
|
|
- mvectorrtkdata.push_back(xdata);
|
|
|
+ xvectorrtkdata.push_back(xdata);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- QString strline = QString::number(flon,'f',7) + QString("\t")
|
|
|
- +QString::number(flat,'f',7)+QString("\t")
|
|
|
- +QString::number(fheight,'f',4)+QString("\t")
|
|
|
- +QString::number(frelx,'f',2) + QString("\t")
|
|
|
- +QString::number(frely,'f',2) + QString("\t");
|
|
|
- ui->plainTextEdit->appendPlainText(strline);
|
|
|
+// QString strline = QString::number(flon,'f',7) + QString("\t")
|
|
|
+// +QString::number(flat,'f',7)+QString("\t")
|
|
|
+// +QString::number(fheight,'f',4)+QString("\t")
|
|
|
+// +QString::number(frelx,'f',2) + QString("\t")
|
|
|
+// +QString::number(frely,'f',2) + QString("\t");
|
|
|
+// ui->plainTextEdit->appendPlainText(strline);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// std::vector<iv::rtkdata> * pxvectorrtkdata = &mvectorrtkdata;
|
|
|
+ // ui->pushButton_CreateRoad->setEnabled(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ return xvectorrtkdata;
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void DialogAddRoadFromRTK::on_pushButton_LoadData_clicked()
|
|
|
+{
|
|
|
+ QString str = QFileDialog::getOpenFileName(this,tr("Open RTK Data"),"",tr("Lane File(*.csv)"));
|
|
|
+ if(str.isEmpty())return;
|
|
|
+
|
|
|
+ QFile xFile;
|
|
|
+ xFile.setFileName(str);
|
|
|
+ QFileInfo fi(str);
|
|
|
+// QString filename = fi.fileName();
|
|
|
+// if(filename.contains(".txt"))
|
|
|
+// {
|
|
|
+// filename = filename.left(filename.length() -4);
|
|
|
+// }
|
|
|
+
|
|
|
+ ui->plainTextEdit->clear();
|
|
|
+ mvectorrtkdata.clear();
|
|
|
+ ui->plainTextEdit->appendPlainText(QString("Longitude\tLatitude\tHeight\trelx\trely"));
|
|
|
+
|
|
|
+ mvectorrtkdata = loadrtkdata(str,mlon0,mlat0,mpxodr);
|
|
|
+
|
|
|
+ if(mlon0 != glon0)
|
|
|
+ {
|
|
|
+ glon0 = mlon0;
|
|
|
+ glat0 = mlat0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(mvectorrtkdata.size()>0)
|
|
|
+ {
|
|
|
+ int i;
|
|
|
+ for(i=0;i<mvectorrtkdata.size();i++)
|
|
|
+ {
|
|
|
+ QString strline = QString::number(mvectorrtkdata.at(i).mflon,'f',7) + QString("\t")
|
|
|
+ +QString::number(mvectorrtkdata.at(i).mflat,'f',7)+QString("\t")
|
|
|
+ +QString::number(mvectorrtkdata.at(i).mheight,'f',4)+QString("\t")
|
|
|
+ +QString::number(mvectorrtkdata.at(i).mfrelx,'f',2) + QString("\t")
|
|
|
+ +QString::number(mvectorrtkdata.at(i).mfrely,'f',2) + QString("\t");
|
|
|
+ ui->plainTextEdit->appendPlainText(strline);
|
|
|
+ }
|
|
|
+
|
|
|
ui->pushButton_CreateRoad->setEnabled(true);
|
|
|
}
|
|
|
+
|
|
|
+// if(xFile.open(QIODevice::ReadWrite))
|
|
|
+// {
|
|
|
+// QByteArray ba;
|
|
|
+// ba = xFile.read(xFile.size());
|
|
|
+// QList<QByteArray> strlinedata= ba.split('\n');
|
|
|
+// int i;
|
|
|
+// int nsize = strlinedata.size();
|
|
|
+// const int nstartline = 1;
|
|
|
+// for(i=nstartline;i<nsize;i++)
|
|
|
+// {
|
|
|
+// double flat,flon,fheight,frelx,frely;
|
|
|
+// QList<QByteArray> strlistvalue = strlinedata.at(i).split(',');
|
|
|
+// int ncount = strlistvalue.size();
|
|
|
+// if(ncount>=4)
|
|
|
+// {
|
|
|
+//// flon = getvaluefromdegreestring(strlistvalue.at(2));
|
|
|
+//// flat = getvaluefromdegreestring(strlistvalue.at(1));
|
|
|
+// flon = atof(strlistvalue.at(2).data());
|
|
|
+// flat = atof(strlistvalue.at(1).data());
|
|
|
+// QString strheight = strlistvalue.at(3);
|
|
|
+// strheight = strheight.left(strheight.size() -2);
|
|
|
+// fheight = strheight.toDouble();
|
|
|
+
|
|
|
+// calcrelxy(mlon0,mlat0,flon,flat,frelx,frely);
|
|
|
+
|
|
|
+// iv::rtkdata xdata;
|
|
|
+// xdata.mflat = flat;
|
|
|
+// xdata.mflon = flon;
|
|
|
+// xdata.mfrelx = frelx;
|
|
|
+// xdata.mfrely = frely;
|
|
|
+// xdata.mheight = fheight;
|
|
|
+// if(mvectorrtkdata.size() < 1)
|
|
|
+// {
|
|
|
+// xdata.mfrels = 0;
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// xdata.mfrels = mvectorrtkdata[mvectorrtkdata.size()-1].mfrels
|
|
|
+// +sqrt(pow(mvectorrtkdata[mvectorrtkdata.size()-1].mfrelx - frelx,2)+pow(mvectorrtkdata[mvectorrtkdata.size()-1].mfrely - frely,2));
|
|
|
+// }
|
|
|
+// mvectorrtkdata.push_back(xdata);
|
|
|
+
|
|
|
+// if(i==nstartline)
|
|
|
+// {
|
|
|
+// if(mpxodr->GetRoadCount()<1)
|
|
|
+// {
|
|
|
+// glat0 = flat;
|
|
|
+// glon0 = flon;
|
|
|
+// mlon0 = glon0;
|
|
|
+// mlat0 = glat0;
|
|
|
+// calcrelxy(mlon0,mlat0,flon,flat,frelx,frely);
|
|
|
+// mvectorrtkdata.clear();
|
|
|
+// iv::rtkdata xdata;
|
|
|
+// xdata.mflat = flat;
|
|
|
+// xdata.mflon = flon;
|
|
|
+// xdata.mfrelx = frelx;
|
|
|
+// xdata.mfrely = frely;
|
|
|
+// xdata.mheight = fheight;
|
|
|
+// xdata.mfrels = 0;
|
|
|
+// mvectorrtkdata.push_back(xdata);
|
|
|
+
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+// QString strline = QString::number(flon,'f',7) + QString("\t")
|
|
|
+// +QString::number(flat,'f',7)+QString("\t")
|
|
|
+// +QString::number(fheight,'f',4)+QString("\t")
|
|
|
+// +QString::number(frelx,'f',2) + QString("\t")
|
|
|
+// +QString::number(frely,'f',2) + QString("\t");
|
|
|
+// ui->plainTextEdit->appendPlainText(strline);
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// // std::vector<iv::rtkdata> * pxvectorrtkdata = &mvectorrtkdata;
|
|
|
+// ui->pushButton_CreateRoad->setEnabled(true);
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
void DialogAddRoadFromRTK::on_pushButton_CreateRoad_clicked()
|