|
@@ -991,6 +991,34 @@ short int Road::GetGeometryCoords(double s_check, double &retX, double &retY, do
|
|
|
//if s_check does not belong to the road, return -999
|
|
|
return -999;
|
|
|
}
|
|
|
+
|
|
|
+int Road::GetRoadSpeedMax(double s_check, double &fspeed)
|
|
|
+{
|
|
|
+ if(mRoadTypeVector.size() == 0)
|
|
|
+ {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ int indexspeed = -1;
|
|
|
+ unsigned int i;
|
|
|
+ for(i=0;i<mRoadTypeVector.size();i++)
|
|
|
+ {
|
|
|
+ if(mRoadTypeVector[i].GetS() <= s_check)
|
|
|
+ {
|
|
|
+ indexspeed = i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(indexspeed == -1)return -2;
|
|
|
+ if(mRoadTypeVector[indexspeed].GetRoadTypeSpeedCount() > 0)
|
|
|
+ {
|
|
|
+ RoadTypeSpeed * pRoadTypeSpeed = mRoadTypeVector[indexspeed].GetRoadTypeSpeed(0);
|
|
|
+ string strtype = pRoadTypeSpeed->Getunit();
|
|
|
+ fspeed = pRoadTypeSpeed->GetmaxSpeed();
|
|
|
+ if(strtype == "km/h")fspeed = fspeed/3.6;
|
|
|
+ if(strtype == "mph")fspeed = fspeed * 1.609344 /3.6;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
//-----------
|
|
|
|
|
|
/**
|