do not emit turns on ferries

This commit is contained in:
karenzshea
2016-12-07 14:26:34 -05:00
committed by Daniel J. H
parent b376c97db8
commit 8ffe915395
10 changed files with 234 additions and 10 deletions
+17 -2
View File
@@ -1,6 +1,6 @@
#include "extractor/guidance/turn_analysis.hpp"
#include "extractor/guidance/constants.hpp"
#include "extractor/guidance/road_classification.hpp"
#include "extractor/guidance/turn_analysis.hpp"
#include "util/coordinate.hpp"
#include "util/coordinate_calculation.hpp"
@@ -65,7 +65,12 @@ TurnAnalysis::TurnAnalysis(const util::NodeBasedDynamicGraph &node_based_graph,
node_based_graph,
node_info_list,
name_table,
street_name_suffix_table)
street_name_suffix_table),
suppress_mode_handler(intersection_generator,
node_based_graph,
node_info_list,
name_table,
street_name_suffix_table)
{
}
@@ -106,6 +111,16 @@ Intersection TurnAnalysis::AssignTurnTypes(const NodeID node_prior_to_intersecti
{TurnType::Invalid, DirectionModifier::UTurn},
INVALID_LANE_DATAID);
});
// Suppress turns on ways between mode types that do not need guidance
if (suppress_mode_handler.canProcess(
node_prior_to_intersection, entering_via_edge, intersection))
{
intersection = suppress_mode_handler(
node_prior_to_intersection, entering_via_edge, std::move(intersection));
return intersection;
}
if (roundabout_handler.canProcess(node_prior_to_intersection, entering_via_edge, intersection))
{
intersection = roundabout_handler(