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