Expose driving_side as a property on RouteStep

This commit is contained in:
Daniel Patterson
2017-10-31 23:51:11 -04:00
parent 5b79640b44
commit 5b58445535
14 changed files with 1811 additions and 31 deletions
+8 -4
View File
@@ -141,7 +141,8 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
maneuver,
leg_geometry.FrontIndex(segment_index),
leg_geometry.BackIndex(segment_index) + 1,
{intersection}});
{intersection},
path_point.is_left_hand_driving});
if (leg_data_index + 1 < leg_data.size())
{
@@ -219,7 +220,8 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
maneuver,
leg_geometry.FrontIndex(segment_index),
leg_geometry.BackIndex(segment_index) + 1,
{intersection}});
{intersection},
facade.IsLeftHandDriving(target_node_id)});
}
// In this case the source + target are on the same edge segment
else
@@ -261,7 +263,8 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
std::move(maneuver),
leg_geometry.FrontIndex(segment_index),
leg_geometry.BackIndex(segment_index) + 1,
{intersection}});
{intersection},
facade.IsLeftHandDriving(source_node_id)});
}
BOOST_ASSERT(segment_index == number_of_segments - 1);
@@ -301,7 +304,8 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
std::move(maneuver),
leg_geometry.locations.size() - 1,
leg_geometry.locations.size(),
{intersection}});
{intersection},
facade.IsLeftHandDriving(source_node_id)});
BOOST_ASSERT(steps.front().intersections.size() == 1);
BOOST_ASSERT(steps.front().intersections.front().bearings.size() == 1);
+2
View File
@@ -76,6 +76,7 @@ struct RouteStep
std::size_t geometry_begin;
std::size_t geometry_end;
std::vector<IntermediateIntersection> intersections;
bool is_left_hand_driving;
// remove all information from the route step, marking it as invalid (used to indicate empty
// steps to be removed).
@@ -129,6 +130,7 @@ inline void RouteStep::Invalidate()
geometry_end = 0;
intersections.clear();
intersections.push_back(getInvalidIntersection());
is_left_hand_driving = false;
}
// Elongate by another step in front