2 #define DEBUG_SOLVER true    37     for (
int i = 0; i < noOfStates; i++) {
    38         T1.push_back(std::vector<float>(noOfObs));
    39         T2.push_back(std::vector<float>(noOfObs));
    55     double d, bestDistance = std::numeric_limits<double>::max();
    57     for (uint i = 1; i < listOfPointId.size(); i++) {
    59         if (d < bestDistance) {
    68         std::cout << p->
infos() << std::endl;
    75     std::vector<long>* roadPath = 
new std::vector<long>(0);
    76     int roadIndex, prevrI = -1;
    77     float bestProbaSoFar = 0.0;
    87         int roadIndex = 
T2[prevrI][i];
    88         if (roadIndex != prevrI)
   114     if (m_currentStep < m_trackPoints->size())
   120     std::unordered_map<long, Road>::iterator idToRoad; 
   122     std::cout << 
"Neighbour roads " << roadsId->size() << std::endl;
   127     for (
const auto id : *roadsId) {
   130         r = &idToRoad->second;
   131         std::cout << p->
x() << 
" distance " << r->
edgeId() << std::endl;
   150     std::unordered_map<long, int>::iterator idToIdx; 
   155             roadIndex = idToIdx->second;
   161             roadIndex = idToIdx->second;
   164             r = &idToRoad->second;
   170                     T1[neighIndex][m_currentStep - 1] * 1 * ep.probability());
   171                 if (maxT1 < 
T1[neighIndex][m_currentStep - 1] * 1) {
   172                     maxT1 = 
T1[neighIndex][m_currentStep - 1] * 1;
   173                     maxT1roadId = neighIndex;
   184     File fileTrack = file1;
   185     File fileGrid = file2;
   217     return idToIdx->second;
 void buildMarkovMatrix()
buildMarkovMatrix 
 
double distanceToSegment(const Point &p1, const Point &p2) const 
Compute the distance between a point and a segment. 
 
void temporalFilter(uint interval)
This is a temporal filter, which deletes points depending on a time value. 
 
std::vector< EmissionProbability > m_emissionProbability
 
void signalCurrentPoint(int id)
 
std::vector< std::vector< float > > T2
 
std::set< long > m_setOfNeighbors
Set of all roadId connected to this one (including this one) 
 
unsigned int m_currentStep
 
const std::vector< int > & vectorOfPointsId() const 
Get the vector of points composing the road. 
 
Solver(QObject *parent=0)
 
void onSignalNeighbours(std::vector< long > *roadsId)
 
void readFromCSV(QString filename)
Reads a csv file and inserts each point in m_points vector. 
 
std::vector< PointGPS * > * getPointsAsPointer()
 
int getIndexFromRoadId(long id)
 
AllRoadMap m_mapOfAllRoads
 
Road is an element of a network. Road are strongly linked with Points. 
 
int getNoOfRoads() const 
Getters. 
 
void setDistance(PointGPS *p, Road *r)
setDistance Calculate distance between GPS point et Road 
 
QStringList fileExtension
 
void addEmissionProbability(long roadId, double distance)
 
void setTrackBoundingBox(double xMin, double xMax, double yMin, double yMax)
Save data about our area of roads. 
 
std::vector< PointGPS * > * m_trackPoints
 
std::vector< PointRoad > m_vectorOfPoints
 
#define DISTANCE_THRESHOLD
 
std::vector< std::vector< float > > T1
 
void spaceFilter(double interval)
This is a space filter, which deletes points depending on a distance interval. 
 
void signalMessage(QString)
 
void filterSpace(double val)
filterSpace Use Spatial filter with a value 
 
std::unordered_map< long, int > m_fromRoadIdToIndex
 
void filterTemp(int val)
filterTemp Use Temporal filter with a value 
 
long edgeId() const 
Get the id of the road. 
 
void signalDimension(double xMin, double xMax, double yMin, double yMax)
 
std::string infos() const 
 
void signalRoadPath(std::vector< long > *rp)
 
void onSignalSetTrack(QString s)
 
std::vector< long > m_fromIndexToRoadId
 
void readFiles(File file1, File file2)
readFiles Read files : track and grid 
 
std::vector< PointRoad > * m_roadPoints
 
std::string infos()
Return a string containing information about the content of this object. 
 
void signalAllPoints(std::vector< PointGPS * > *)
 
void signalAllRoads(std::unordered_map< long, Road > *, std::vector< PointRoad > *)
 
void readFromCSV(QString filename)
Reads a csv file and inserts info into the corresponding attributs. 
 
void onSignalSetGrid(QString s)