|
@@ -1348,6 +1348,7 @@ int xodrfunc::GetDrivingLane(Road *pRoad, const int nLS, const int nsuggestlane)
|
|
|
|
|
|
nrtn = 1000;
|
|
nrtn = 1000;
|
|
int ndiff;
|
|
int ndiff;
|
|
|
|
+
|
|
for(i=0;i<nLaneCount;i++)
|
|
for(i=0;i<nLaneCount;i++)
|
|
{
|
|
{
|
|
Lane * pLane = pLS->GetLane(i);
|
|
Lane * pLane = pLS->GetLane(i);
|
|
@@ -1361,6 +1362,28 @@ int xodrfunc::GetDrivingLane(Road *pRoad, const int nLS, const int nsuggestlane)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if(nrtn == 1000)
|
|
|
|
+ {
|
|
|
|
+ std::cout<<"Waring. Maybe no driving road in this side."<<std::endl;
|
|
|
|
+ for(i=0;i<nLaneCount;i++)
|
|
|
|
+ {
|
|
|
|
+ Lane * pLane = pLS->GetLane(i);
|
|
|
|
+ if((pLane->GetId()*nsuggestlane>0))
|
|
|
|
+ {
|
|
|
|
+ ndiff = pLane->GetId() - nrtn;
|
|
|
|
+ int xdiff = pLane->GetId() - nsuggestlane;
|
|
|
|
+ if(abs(xdiff)<abs(ndiff))
|
|
|
|
+ {
|
|
|
|
+ nrtn = pLane->GetId();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
return nrtn;
|
|
return nrtn;
|
|
}
|
|
}
|
|
|
|
|