Revert suppressSegregated routing.
This commit is contained in:
		
							parent
							
								
									9eae1de9bc
								
							
						
					
					
						commit
						92c4a228e1
					
				| @ -74,7 +74,7 @@ Feature: Collapse | ||||
| 
 | ||||
|         When I route I should get | ||||
|             | waypoints | route                      | turns                                      | locations | | ||||
|             | a,i       | first,third,third          | depart,turn sharp left,arrive              | a,b,i     | | ||||
|             | a,i       | first,second,third,third   | depart,turn left,turn slight left,arrive   | a,b,e,i   | | ||||
| 
 | ||||
|     Scenario: Segregated Intersection, Cross Belonging to Correct Street | ||||
|         Given the node map | ||||
|  | ||||
| @ -177,7 +177,6 @@ class RouteAPI : public BaseAPI | ||||
|                 leg.steps = guidance::anticipateLaneChange(std::move(leg.steps)); | ||||
|                 leg.steps = guidance::buildIntersections(std::move(leg.steps)); | ||||
|                 leg.steps = guidance::suppressShortNameSegments(std::move(leg.steps)); | ||||
|                 leg.steps = guidance::suppressSegregated(std::move(leg.steps)); | ||||
|                 leg.steps = guidance::assignRelativeLocations(std::move(leg.steps), | ||||
|                                                               leg_geometry, | ||||
|                                                               phantoms.source_phantom, | ||||
|  | ||||
| @ -140,8 +140,6 @@ void combineRouteSteps(RouteStep &step_at_turn_location, | ||||
| // alias for suppressing a step, using CombineRouteStep with NoModificationStrategy only
 | ||||
| void suppressStep(RouteStep &step_at_turn_location, RouteStep &step_after_turn_location); | ||||
| 
 | ||||
| std::vector<RouteStep> suppressSegregated(std::vector<RouteStep> steps); | ||||
| 
 | ||||
| } /* namespace guidance */ | ||||
| } /* namespace osrm */ | ||||
| } /* namespace osrm */ | ||||
|  | ||||
| @ -165,7 +165,7 @@ inline RouteStep &RouteStep::ElongateBy(const RouteStep &following_step) | ||||
|                          following_step.intersections.begin(), | ||||
|                          following_step.intersections.end()); | ||||
| 
 | ||||
|     is_segregated = false; | ||||
|     /// @todo Process is_segregated flag
 | ||||
| 
 | ||||
|     return *this; | ||||
| } | ||||
|  | ||||
| @ -165,8 +165,6 @@ void annotatePath(const FacadeT &facade, | ||||
|         const auto node_id = *node_from;        // edge-based graph node index
 | ||||
|         const auto name_index = facade.GetNameIndex(node_id); | ||||
|         const bool is_segregated = facade.IsSegregated(node_id); | ||||
|         if (is_segregated) | ||||
|             util::Log() << "111 Segregated node"; | ||||
|         const auto turn_instruction = facade.GetTurnInstructionForEdgeID(turn_id); | ||||
|         const extractor::TravelMode travel_mode = facade.GetTravelMode(node_id); | ||||
|         const auto classes = facade.GetClassData(node_id); | ||||
|  | ||||
| @ -480,64 +480,6 @@ RouteSteps collapseTurnInstructions(RouteSteps steps) | ||||
|     return steps; | ||||
| } | ||||
| 
 | ||||
| std::vector<RouteStep> suppressSegregated(std::vector<RouteStep> steps) | ||||
| { | ||||
|     if (steps.size() <= 2) | ||||
|         return steps; | ||||
| 
 | ||||
|     // start of with no-op
 | ||||
|     for (auto current_step = steps.begin() + 1; current_step + 1 != steps.end(); ++current_step) | ||||
|     { | ||||
|         /// @todo All the prologue checks are taken from the collapseTurnInstructions function.
 | ||||
|         /// Factor out to the separate routing when changes will be approved.
 | ||||
| 
 | ||||
|         if (entersRoundabout(current_step->maneuver.instruction) || | ||||
|             staysOnRoundabout(current_step->maneuver.instruction)) | ||||
|         { | ||||
|             // If postProcess is called before then all corresponding leavesRoundabout steps are
 | ||||
|             // removed and the current roundabout step can be ignored by directly proceeding to
 | ||||
|             // the next step.
 | ||||
|             // If postProcess is not called before then all steps till the next leavesRoundabout
 | ||||
|             // step must be skipped to prevent incorrect roundabouts post-processing.
 | ||||
| 
 | ||||
|             // are we done for good?
 | ||||
|             if (current_step + 1 == steps.end()) | ||||
|                 break; | ||||
|             else | ||||
|                 continue; | ||||
|         } | ||||
| 
 | ||||
|         // only operate on actual turns
 | ||||
|         if (!hasTurnType(*current_step)) | ||||
|             continue; | ||||
| 
 | ||||
|         // don't collapse next step if it is a waypoint alread
 | ||||
|         const auto next_step = findNextTurn(current_step); | ||||
|         if (hasWaypointType(*next_step)) | ||||
|             break; | ||||
| 
 | ||||
|         const auto previous_step = findPreviousTurn(current_step); | ||||
| 
 | ||||
|         // don't collapse anything that does change modes
 | ||||
|         if (current_step->mode != next_step->mode) | ||||
|             continue; | ||||
| 
 | ||||
|         if (current_step->is_segregated) | ||||
|         { | ||||
|             /// @todo Need to apply correct combine strategies.
 | ||||
| 
 | ||||
|             util::Log() << "222 Segregated node"; | ||||
|             combineRouteSteps(*current_step, | ||||
|                               *next_step, | ||||
|                               AdjustToCombinedTurnStrategy(*previous_step), | ||||
|                               TransferSignageStrategy(), | ||||
|                               NoModificationStrategy()); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return removeNoTurnInstructions(std::move(steps)); | ||||
| } | ||||
| 
 | ||||
| } // namespace guidance
 | ||||
| } // namespace engine
 | ||||
| } // namespace osrm
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user