#include "trace2vectormap.h" #include #include #include "math/gnss_coordinate_convert.h" trace2vectormap::trace2vectormap(iv::trace2vectormap_param xparam) { mparam = xparam; } void trace2vectormap::llh2xyy(double flon, double flat, double fhead, double & x, double & y, double & fyaw, double flon0, double flat0) { double x_o,y_o; double x_now,y_now; GaussProjCal(flon0,flat0,&x_o,&y_o); GaussProjCal(flon,flat,&x_now,&y_now); x = x_now - x_o; y = y_now - y_o; fyaw = (90 - fhead)*M_PI/180.0; } int trace2vectormap::convert() { iv::trace2vectormap_param xparam = mparam; QFile xFile; xFile.setFileName(xparam.strtracefilepath.data()); if(!xFile.open(QIODevice::ReadOnly)) { return -1; } QByteArray ba = xFile.readAll(); QList baline =ba.split('\n');//x.split(QRegExp("\n ")) ;//ba.split('\n'); int nline = baline.size(); int i; int npid = 1; std::vector xvectorpoint; std::vector xvectornode; std::vector xvectorlane; std::vector xvectorline; std::vector xvectorwhiteline; for(i=0;i badata = baline[i].split('\t'); QStringList badata = x.split(QRegExp("[\t ,;]")); if(badata.size()>=10) { double flon = QString(badata[1]).toDouble(); double flat = QString(badata[2]).toDouble(); double fheading = QString(badata[5]).toDouble(); // std::cout<<"lat: "<