Fix uturns at dead-end streets
This commit is contained in:
parent
cc4713d878
commit
22e83013e3
@ -421,10 +421,23 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((node_u == node_w) && (m_node_based_graph->GetOutDegree(node_v) > 1))
|
if (node_u == node_w && m_node_based_graph->GetOutDegree(node_v) > 1)
|
||||||
{
|
{
|
||||||
++skipped_uturns_counter;
|
auto number_of_emmiting_bidirectional_edges = 0;
|
||||||
continue;
|
for (auto edge : m_node_based_graph->GetAdjacentEdgeRange(node_v))
|
||||||
|
{
|
||||||
|
auto target = m_node_based_graph->GetTarget(edge);
|
||||||
|
auto reverse_edge = m_node_based_graph->FindEdge(target, node_v);
|
||||||
|
if (!m_node_based_graph->GetEdgeData(reverse_edge).reversed)
|
||||||
|
{
|
||||||
|
++number_of_emmiting_bidirectional_edges;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (number_of_emmiting_bidirectional_edges > 1)
|
||||||
|
{
|
||||||
|
++skipped_uturns_counter;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user