don't assign exit
in arrive when ending in roundabout
This commit is contained in:
parent
3b2ca720a8
commit
dff7fe214b
@ -1,3 +1,8 @@
|
|||||||
|
# 5.5.2
|
||||||
|
- Changes from 5.5.1
|
||||||
|
- Bugfixes
|
||||||
|
- Fix #3475 removed an invalid `exit` field from the `arrive` maneuver
|
||||||
|
|
||||||
# 5.5.1
|
# 5.5.1
|
||||||
- Changes from 5.5.0
|
- Changes from 5.5.0
|
||||||
- API:
|
- API:
|
||||||
|
@ -259,6 +259,8 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
|
|||||||
BOOST_ASSERT(steps.back().intersections.front().lanes.first_lane_from_the_right ==
|
BOOST_ASSERT(steps.back().intersections.front().lanes.first_lane_from_the_right ==
|
||||||
INVALID_LANEID);
|
INVALID_LANEID);
|
||||||
BOOST_ASSERT(steps.back().intersections.front().lane_description.empty());
|
BOOST_ASSERT(steps.back().intersections.front().lane_description.empty());
|
||||||
|
// depart and arrive need to be trivial
|
||||||
|
BOOST_ASSERT(steps.front().maneuver.exit == 0 && steps.back().maneuver.exit == 0);
|
||||||
return steps;
|
return steps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ inline void print(const engine::guidance::RouteStep &step)
|
|||||||
<< " "
|
<< " "
|
||||||
<< " Duration: " << step.duration << " Distance: " << step.distance
|
<< " Duration: " << step.duration << " Distance: " << step.distance
|
||||||
<< " Geometry: " << step.geometry_begin << " " << step.geometry_end
|
<< " Geometry: " << step.geometry_begin << " " << step.geometry_end
|
||||||
|
<< " Exit: " << step.maneuver.exit
|
||||||
<< "\n\tIntersections: " << step.intersections.size() << " [";
|
<< "\n\tIntersections: " << step.intersections.size() << " [";
|
||||||
|
|
||||||
for (const auto &intersection : step.intersections)
|
for (const auto &intersection : step.intersections)
|
||||||
|
@ -147,10 +147,9 @@ void fixFinalRoundabout(std::vector<RouteStep> &steps)
|
|||||||
--propagation_index)
|
--propagation_index)
|
||||||
{
|
{
|
||||||
auto &propagation_step = steps[propagation_index];
|
auto &propagation_step = steps[propagation_index];
|
||||||
|
propagation_step.maneuver.exit = 0;
|
||||||
if (entersRoundabout(propagation_step.maneuver.instruction))
|
if (entersRoundabout(propagation_step.maneuver.instruction))
|
||||||
{
|
{
|
||||||
propagation_step.maneuver.exit = 0;
|
|
||||||
|
|
||||||
// remember the current name as rotary name in tha case we end in a rotary
|
// remember the current name as rotary name in tha case we end in a rotary
|
||||||
if (propagation_step.maneuver.instruction.type == TurnType::EnterRotary ||
|
if (propagation_step.maneuver.instruction.type == TurnType::EnterRotary ||
|
||||||
propagation_step.maneuver.instruction.type == TurnType::EnterRotaryAtExit)
|
propagation_step.maneuver.instruction.type == TurnType::EnterRotaryAtExit)
|
||||||
@ -158,12 +157,13 @@ void fixFinalRoundabout(std::vector<RouteStep> &steps)
|
|||||||
propagation_step.rotary_name = propagation_step.name;
|
propagation_step.rotary_name = propagation_step.name;
|
||||||
propagation_step.rotary_pronunciation = propagation_step.pronunciation;
|
propagation_step.rotary_pronunciation = propagation_step.pronunciation;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (propagation_step.maneuver.instruction.type ==
|
else if (propagation_step.maneuver.instruction.type ==
|
||||||
TurnType::EnterRoundaboutIntersection ||
|
TurnType::EnterRoundaboutIntersection ||
|
||||||
propagation_step.maneuver.instruction.type ==
|
propagation_step.maneuver.instruction.type ==
|
||||||
TurnType::EnterRoundaboutIntersectionAtExit)
|
TurnType::EnterRoundaboutIntersectionAtExit)
|
||||||
|
{
|
||||||
propagation_step.maneuver.instruction.type = TurnType::EnterRoundabout;
|
propagation_step.maneuver.instruction.type = TurnType::EnterRoundabout;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user