|
@@ -171,10 +171,10 @@ xodrdijkstra::xodrdijkstra(OpenDrive * pxodr)
|
|
|
{
|
|
|
fseclen = px->GetRoadLength() - px->GetLaneSection(j)->GetS();
|
|
|
}
|
|
|
- if((px->GetRoadId() == "10098")||(px->GetRoadId() == "10113")||(px->GetRoadId() == "10074"))
|
|
|
- {
|
|
|
- int axy = 1;
|
|
|
- }
|
|
|
+// if((px->GetRoadId() == "10098")||(px->GetRoadId() == "10113")||(px->GetRoadId() == "10074"))
|
|
|
+// {
|
|
|
+// int axy = 1;
|
|
|
+// }
|
|
|
roadedge xroad(atoi(px->GetRoadId().data()),atoi(px->GetRoadJunction().data()),fseclen,2,j,px);
|
|
|
|
|
|
// roadedge xroad(atoi(px->GetRoadId().data()),atoi(px->GetRoadJunction().data()),px->GetRoadLength(),2,j,px);
|
|
@@ -229,6 +229,12 @@ xodrdijkstra::xodrdijkstra(OpenDrive * pxodr)
|
|
|
int road_from = atoi(pjc->GetIncomingRoad().data());
|
|
|
int road_to = atoi(pjc->GetConnectingRoad().data());
|
|
|
|
|
|
+ if((road_from == 117)||(road_to == 117))
|
|
|
+ {
|
|
|
+ int bbb = 1;
|
|
|
+ bbb++;
|
|
|
+ }
|
|
|
+
|
|
|
Road * pRoad_From = GetRoadByID(road_from);
|
|
|
Road * pRoad_To = GetRoadByID(road_to);
|
|
|
int k;
|
|
@@ -305,7 +311,7 @@ xodrdijkstra::xodrdijkstra(OpenDrive * pxodr)
|
|
|
// if(lr_from == 1)
|
|
|
if(lr_to == 2)
|
|
|
{
|
|
|
- fromedge = getroadedge(road_from,lr_from,pRoad_From->GetLaneSectionCount() -1);
|
|
|
+ fromedge = getroadedge(road_from,lr_from);
|
|
|
toedge = getroadedge(road_to,lr_to);
|
|
|
a = mroadedge[fromedge].mvertexend;
|
|
|
b = mroadedge[toedge].mvertexstart;
|
|
@@ -1597,6 +1603,10 @@ std::vector<pathsection> xodrdijkstra::getgpspoint(int srcroadid, int nsrclr, in
|
|
|
xpathsection[i-1].mnEndLaneSel = ngoodlane;
|
|
|
bNeedChangeLane = false;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ bNeedChangeLane = true;
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -1687,6 +1697,21 @@ std::vector<pathsection> xodrdijkstra::getgpspoint(int srcroadid, int nsrclr, in
|
|
|
if(pRoad == pRoad2)
|
|
|
{
|
|
|
std::cout<<" Lane Change in road inter. "<<std::endl;
|
|
|
+
|
|
|
+ if(nlr == 2)
|
|
|
+ {
|
|
|
+ if(pLane2->IsSuccessorSet())
|
|
|
+ {
|
|
|
+ xpathsection[i].secondsel = pLane2->GetSuccessor();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(pLane2->IsPredecessorSet())
|
|
|
+ {
|
|
|
+ xpathsection[i].secondsel = pLane2->GetPredecessor();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -1740,14 +1765,14 @@ std::vector<pathsection> xodrdijkstra::getgpspoint(int srcroadid, int nsrclr, in
|
|
|
|
|
|
}
|
|
|
|
|
|
- int k;
|
|
|
- for(k=(nsize-1);k>i;k--)
|
|
|
- {
|
|
|
- if(xpathsection[k].mpRoad == xpathsection[i].mpRoad)
|
|
|
- {
|
|
|
- xpathsection[k].secondsel = xpathsection[i].secondsel;
|
|
|
- }
|
|
|
- }
|
|
|
+// int k;
|
|
|
+// for(k=(nsize-1);k>i;k--)
|
|
|
+// {
|
|
|
+// if(xpathsection[k].mpRoad == xpathsection[i].mpRoad)
|
|
|
+// {
|
|
|
+// xpathsection[k].secondsel = xpathsection[i].secondsel;
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
}
|
|
|
else
|