Merge pull request #1202 from Project-OSRM/fix_1192
Fix and close #1192
This commit is contained in:
		
						commit
						6175faa9a4
					
				| @ -63,8 +63,8 @@ bool ExtractorCallbacks::ProcessRestriction(const InputRestrictionContainer &res | ||||
| /** warning: caller needs to take care of synchronization! */ | ||||
| void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) | ||||
| { | ||||
|     if (((0 >= parsed_way.forward_speed) ||  | ||||
|             (TRAVEL_MODE_INACCESSIBLE == parsed_way.forward_travel_mode)) &&  | ||||
|     if (((0 >= parsed_way.forward_speed) || | ||||
|             (TRAVEL_MODE_INACCESSIBLE == parsed_way.forward_travel_mode)) && | ||||
|         ((0 >= parsed_way.backward_speed) || | ||||
|             (TRAVEL_MODE_INACCESSIBLE == parsed_way.backward_travel_mode)) && | ||||
|         (0 >= parsed_way.duration)) | ||||
| @ -89,6 +89,7 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) | ||||
|         // TODO: iterate all way segments and set duration corresponding to the length of each
 | ||||
|         // segment
 | ||||
|         parsed_way.forward_speed = parsed_way.duration / (parsed_way.path.size() - 1); | ||||
|         parsed_way.backward_speed = parsed_way.duration / (parsed_way.path.size() - 1); | ||||
|     } | ||||
| 
 | ||||
|     if (std::numeric_limits<double>::epsilon() >= std::abs(-1. - parsed_way.forward_speed)) | ||||
| @ -155,6 +156,7 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) | ||||
|     { // Only true if the way should be split
 | ||||
|         BOOST_ASSERT(parsed_way.backward_travel_mode>0); | ||||
|         std::reverse(parsed_way.path.begin(), parsed_way.path.end()); | ||||
| 
 | ||||
|         for (std::vector<NodeID>::size_type n = 0; n < parsed_way.path.size() - 1; ++n) | ||||
|         { | ||||
|             external_memory.all_edges_list.push_back( | ||||
|  | ||||
| @ -26,3 +26,22 @@ Feature: Car - Handle ferry routes | ||||
|             | c    | e  | cde         | 2     | | ||||
|             | c    | f  | cde,efg     | 2,1   | | ||||
|             | c    | g  | cde,efg     | 2,1   | | ||||
| 
 | ||||
|     Scenario: Car - Properly handle durations | ||||
|         Given the node map | ||||
|             | a | b | c |   |   | | ||||
|             |   |   | d |   |   | | ||||
|             |   |   | e | f | g | | ||||
| 
 | ||||
|         And the ways | ||||
|             | nodes | highway | route | duration | | ||||
|             | abc   | primary |       |          | | ||||
|             | cde   |         | ferry | 00:01:00 | | ||||
|             | efg   | primary |       |          | | ||||
| 
 | ||||
|         When I route I should get | ||||
|             | from | to | route       | modes | speed   | | ||||
|             | a    | g  | abc,cde,efg | 1,2,1 | 24 km/h | | ||||
|             | b    | f  | abc,cde,efg | 1,2,1 | 19 km/h | | ||||
|             | c    | e  | cde         | 2     | 12 km/h | | ||||
|             | e    | c  | cde         | 2     | 12 km/h | | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user