Guards against no lanes for lanes left and right of turn, resolves #3518

This commit is contained in:
Daniel J. Hofmann
2017-01-04 17:09:44 +01:00
committed by Moritz Kobitzsch
parent f6fef5c166
commit 5100f2cc7b
3 changed files with 39 additions and 6 deletions
@@ -145,6 +145,16 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
path_point.lane_data.second != INVALID_LANE_DESCRIPTIONID
? facade.GetTurnDescription(path_point.lane_data.second)
: extractor::guidance::TurnLaneDescription();
// Lanes in turn are bound by total number of lanes at the location
BOOST_ASSERT(intersection.lanes.lanes_in_turn <=
intersection.lane_description.size());
// No lanes at location and no turn lane or lanes at location and lanes in turn
BOOST_ASSERT((intersection.lane_description.empty() &&
intersection.lanes.lanes_in_turn == 0) ||
(!intersection.lane_description.empty() &&
intersection.lanes.lanes_in_turn != 0));
std::copy(bearing_data.begin(),
bearing_data.end(),
std::back_inserter(intersection.bearings));