Take stop signs into account during routing
This commit is contained in:
parent
97883178fa
commit
c28a6832d7
@ -217,31 +217,9 @@ void GraphCompressor::Compress(const std::unordered_set<NodeID> &barrier_nodes,
|
|||||||
bool has_forward_stop_sign = stop_signs.Has(node_u, node_v);
|
bool has_forward_stop_sign = stop_signs.Has(node_u, node_v);
|
||||||
bool has_reverse_stop_sign = stop_signs.Has(node_w, node_v);
|
bool has_reverse_stop_sign = stop_signs.Has(node_w, node_v);
|
||||||
|
|
||||||
// we apply penalty for only one of the control flow nodes
|
|
||||||
if (has_forward_stop_sign && has_forward_signal) {
|
|
||||||
has_forward_stop_sign = false;
|
|
||||||
util::Log(logWARNING) << "Node " << node_v
|
|
||||||
<< " has both a traffic signal and a stop sign";
|
|
||||||
}
|
|
||||||
if (has_reverse_stop_sign && has_reverse_signal) {
|
|
||||||
has_reverse_stop_sign = false;
|
|
||||||
util::Log(logWARNING) << "Node " << node_v
|
|
||||||
<< " has both a traffic signal and a stop sign";
|
|
||||||
}
|
|
||||||
|
|
||||||
bool has_forward_give_way_sign = give_way_signs.Has(node_u, node_v);
|
bool has_forward_give_way_sign = give_way_signs.Has(node_u, node_v);
|
||||||
bool has_reverse_give_way_sign = give_way_signs.Has(node_w, node_v);
|
bool has_reverse_give_way_sign = give_way_signs.Has(node_w, node_v);
|
||||||
// we apply penalty for only one of the control flow nodes
|
|
||||||
if (has_forward_give_way_sign && (has_forward_signal || has_forward_stop_sign)) {
|
|
||||||
has_forward_give_way_sign = false;
|
|
||||||
util::Log(logWARNING) << "Node " << node_v
|
|
||||||
<< " has both a give way sign and a stop sign or traffic signal";
|
|
||||||
}
|
|
||||||
if (has_reverse_stop_sign && (has_reverse_signal || has_reverse_stop_sign)) {
|
|
||||||
has_reverse_give_way_sign = false;
|
|
||||||
util::Log(logWARNING) << "Node " << node_v
|
|
||||||
<< " has both a give way sign and a stop sign or traffic signal";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
EdgeDuration forward_node_duration_penalty = MAXIMAL_EDGE_DURATION;
|
EdgeDuration forward_node_duration_penalty = MAXIMAL_EDGE_DURATION;
|
||||||
@ -249,7 +227,7 @@ void GraphCompressor::Compress(const std::unordered_set<NodeID> &barrier_nodes,
|
|||||||
EdgeDuration reverse_node_duration_penalty = MAXIMAL_EDGE_DURATION;
|
EdgeDuration reverse_node_duration_penalty = MAXIMAL_EDGE_DURATION;
|
||||||
EdgeWeight reverse_node_weight_penalty = INVALID_EDGE_WEIGHT;
|
EdgeWeight reverse_node_weight_penalty = INVALID_EDGE_WEIGHT;
|
||||||
if (has_forward_signal || has_reverse_signal || has_forward_stop_sign ||
|
if (has_forward_signal || has_reverse_signal || has_forward_stop_sign ||
|
||||||
has_reverse_stop_sign)
|
has_reverse_stop_sign || has_forward_give_way_sign || has_reverse_give_way_sign)
|
||||||
{
|
{
|
||||||
// we cannot handle this as node penalty, if it depends on turn direction
|
// we cannot handle this as node penalty, if it depends on turn direction
|
||||||
if (fwd_edge_data1.flags.restricted != fwd_edge_data2.flags.restricted)
|
if (fwd_edge_data1.flags.restricted != fwd_edge_data2.flags.restricted)
|
||||||
|
Loading…
Reference in New Issue
Block a user