Don't remove small segments at start/begin if they are vias
This commit is contained in:
		
							parent
							
								
									71dc10ebea
								
							
						
					
					
						commit
						9967dbbaa9
					
				@ -173,6 +173,7 @@ void DescriptionFactory::Run(const unsigned zoom_level)
 | 
				
			|||||||
    //        }
 | 
					    //        }
 | 
				
			||||||
    //        string0 = string1;
 | 
					    //        string0 = string1;
 | 
				
			||||||
    //    }
 | 
					    //    }
 | 
				
			||||||
 | 
					    //
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    float segment_length = 0.;
 | 
					    float segment_length = 0.;
 | 
				
			||||||
    EdgeWeight segment_duration = 0;
 | 
					    EdgeWeight segment_duration = 0;
 | 
				
			||||||
@ -197,7 +198,8 @@ void DescriptionFactory::Run(const unsigned zoom_level)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Post-processing to remove empty or nearly empty path segments
 | 
					    // Post-processing to remove empty or nearly empty path segments
 | 
				
			||||||
    if (path_description.size() > 2 &&
 | 
					    if (path_description.size() > 2 &&
 | 
				
			||||||
        std::numeric_limits<float>::epsilon() > path_description.back().length)
 | 
					        std::numeric_limits<float>::epsilon() > path_description.back().length &&
 | 
				
			||||||
 | 
					        !(path_description.end() - 2)->is_via_location)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        path_description.pop_back();
 | 
					        path_description.pop_back();
 | 
				
			||||||
        path_description.back().necessary = true;
 | 
					        path_description.back().necessary = true;
 | 
				
			||||||
@ -206,7 +208,8 @@ void DescriptionFactory::Run(const unsigned zoom_level)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (path_description.size() > 2 &&
 | 
					    if (path_description.size() > 2 &&
 | 
				
			||||||
        std::numeric_limits<float>::epsilon() > path_description.front().length)
 | 
					        std::numeric_limits<float>::epsilon() > path_description.front().length &&
 | 
				
			||||||
 | 
					        !(path_description.begin() + 1)->is_via_location)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        path_description.erase(path_description.begin());
 | 
					        path_description.erase(path_description.begin());
 | 
				
			||||||
        path_description.front().turn_instruction = TurnInstruction::HeadOn;
 | 
					        path_description.front().turn_instruction = TurnInstruction::HeadOn;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user