Update tests expectations and obvious detection
This commit is contained in:
parent
d166fc6a75
commit
8b52c6c7ac
@ -135,12 +135,12 @@ Feature: Car - Destination only, no passing through
|
||||
Scenario: Car - Routing through a parking lot tagged access=destination,service
|
||||
Given the node map
|
||||
"""
|
||||
a----c++++b+++g----h---i
|
||||
| + + + |
|
||||
| + + + |
|
||||
| + + + |
|
||||
a----c++++b+++g------h---i
|
||||
| + + + /
|
||||
| + + + /
|
||||
| + + + /
|
||||
| d++++e+f /
|
||||
z---------------y
|
||||
z--------------y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
@ -155,9 +155,10 @@ Feature: Car - Destination only, no passing through
|
||||
| gf | destination | service |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route |
|
||||
| a | i | azyhi,azyhi |
|
||||
| b | f | be,def,def |
|
||||
| from | to | route |
|
||||
| a | i | azyhi,azyhi |
|
||||
| b | f | be,def,def |
|
||||
| b | i | cbg,ghi,azyhi,azyhi |
|
||||
|
||||
Scenario: Car - Disallow snapping to access=private,highway=service
|
||||
Given a grid size of 20 meters
|
||||
|
@ -385,7 +385,7 @@ Feature: Collapse
|
||||
| a,g | first,second,second | depart,turn left,arrive | a,b,g |
|
||||
| d,g | first,second,second | depart,turn right,arrive | d,e,g |
|
||||
| g,f | second,first,first | depart,turn right,arrive | g,e,f |
|
||||
| g,c | second,first,first | depart,turn left,arrive | g,e,c |
|
||||
| g,c | second,first,first | depart,end of road left,arrive | g,b,c |
|
||||
|
||||
Scenario: Do not collapse turning roads
|
||||
Given the node map
|
||||
@ -1010,7 +1010,7 @@ Feature: Collapse
|
||||
| f,j | hohe,hohe | depart,arrive | f,j |
|
||||
| a,t | hohe,a100,a100 | depart,on ramp right,arrive | a,b,t |
|
||||
| f,e | | | |
|
||||
| q,j | a100,hohe,hohe | depart,turn right,arrive | q,p,j |
|
||||
| q,j | a100,hohe,hohe | depart,turn right,arrive | q,i,j |
|
||||
| q,e | a100,hohebruecke,hohe | depart,turn left,arrive | q,p,e |
|
||||
|
||||
Scenario: Forking before a turn (forky)
|
||||
|
@ -687,7 +687,7 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | locations |
|
||||
| s,f | sabc,ae,dbef,dbef | depart,turn slight right,turn right,arrive | s,a,e,f |
|
||||
| s,f | sabc,ae,dbef,dbef | depart,fork slight right,turn right,arrive | s,a,e,f |
|
||||
|
||||
@sliproads
|
||||
Scenario: Traffic Signal on Sliproad
|
||||
|
@ -64,9 +64,9 @@ Feature: Exceptions for routing onto low-priority roads
|
||||
| bc | service | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| e,c | service, | depart,arrive |
|
||||
| c,e | ,service,service | depart,turn straight,arrive |
|
||||
| waypoints | route | turns |
|
||||
| e,c | service, | depart,arrive |
|
||||
| c,e | ,service | depart,arrive |
|
||||
|
||||
Scenario: Straight onto low-priority
|
||||
Given the node map
|
||||
|
@ -384,9 +384,9 @@ Feature: Merge Segregated Roads
|
||||
| cd | right | no |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | intersections |
|
||||
| a,d | left,circle,circle,right,right | true:90;false:90 true:120 false:270;true:60 true:180 false:300;true:90 false:240 true:270;true:270 |
|
||||
| g,d | bottom,circle,right,right | true:0;true:60 false:180 false:300;true:90 false:240 true:270;true:270 |
|
||||
| waypoints | route | intersections |
|
||||
| a,d | left,circle,right,right | true:90,false:90 true:120 false:270;true:60 true:180 false:300;true:90 false:240 true:270;true:270 |
|
||||
| g,d | bottom,circle,right,right | true:0;true:60 false:180 false:300;true:90 false:240 true:270;true:270 |
|
||||
|
||||
Scenario: Middle Island
|
||||
Given the node map
|
||||
@ -644,7 +644,7 @@ Feature: Merge Segregated Roads
|
||||
| k,j | marianne,albrecht,luise,luise | depart,turn left,turn left,arrive |
|
||||
| k,d | marianne,schwert,schwert | depart,turn right,arrive |
|
||||
| i,j | luise,luise | depart,arrive |
|
||||
| i,d | luise,albrecht,schwert,schwert | depart,turn left,turn straight,arrive |
|
||||
| i,d | luise,albrecht,schwert | depart,turn left,arrive |
|
||||
| i,l | luise,albrecht,marianne,marianne | depart,turn left,turn left,arrive |
|
||||
|
||||
# https://www.openstreetmap.org/#map=19/52.46339/13.40272
|
||||
|
@ -300,10 +300,11 @@ Feature: Simple Turns
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | turns |
|
||||
| a | d | , | depart,turn right,arrive |
|
||||
| a | d | ,, | depart,turn right,arrive |
|
||||
|
||||
|
||||
# https://www.openstreetmap.org/#map=19/37.61256/-122.40371
|
||||
@todo
|
||||
Scenario: Turning Road with Offset at Segregated Intersection
|
||||
Given the node map
|
||||
"""
|
||||
|
@ -899,9 +899,9 @@ Feature: Simple Turns
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
| abc | primary | road |
|
||||
| bd | residential | in |
|
||||
| nodes | highway | name | lanes |
|
||||
| abc | primary | road | 3 |
|
||||
| bd | residential | in | 1 |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | turns | route |
|
||||
@ -1434,21 +1434,21 @@ Feature: Simple Turns
|
||||
Scenario: Turn for roads with no name, ref changes
|
||||
Given the node map
|
||||
"""
|
||||
x
|
||||
.
|
||||
.
|
||||
d
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
e. . t . c . p. .f
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
b
|
||||
.
|
||||
.
|
||||
a
|
||||
x
|
||||
.
|
||||
.
|
||||
d
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
e. . t . c . p. .f
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
b
|
||||
.
|
||||
.
|
||||
a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
@ -1460,6 +1460,6 @@ Feature: Simple Turns
|
||||
| etcpf | primary | B 1 | | no |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| e,x | ,,, | depart,turn sharp left,turn right,arrive |
|
||||
| f,a | ,, | depart,turn left,arrive |
|
||||
| waypoints | route | turns |
|
||||
| e,x | ,, | depart,turn left,arrive |
|
||||
| f,a | ,, | depart,turn left,arrive |
|
||||
|
@ -108,12 +108,12 @@ Feature: Bearing parameter
|
||||
| ha | yes | ring |
|
||||
|
||||
When I route I should get
|
||||
| from | to | bearings | route | bearing |
|
||||
| 0 | q | 0 90 | ia,ring,ring,ring,ring | 0->0,0->90,180->270,270->0,90->0 |
|
||||
| 0 | a | 45 90 | jb,ring,ring,ring,ring | 0->45,45->180,180->270,270->0,90->0 |
|
||||
| 0 | q | 90 90 | kc,ring,ring,ring | 0->90,90->180,270->0,90->0 |
|
||||
| 0 | a | 135 90 | ld,ring,ring,ring | 0->135,135->270,270->0,90->0 |
|
||||
| 0 | a | 180 90 | me,ring,ring,ring | 0->180,180->270,270->0,90->0 |
|
||||
| 0 | a | 225 90 | nf,ring,ring | 0->225,225->0,90->0 |
|
||||
| 0 | a | 270 90 | og,ring,ring | 0->270,270->0,90->0 |
|
||||
| 0 | a | 315 90 | ph,ring,ring | 0->315,315->90,90->0 |
|
||||
| from | to | bearings | route | bearing |
|
||||
| 0 | q | 0 90 | ia,ring,ring,ring,ring,ring | 0->0,0->90,180->270,270->0,0->90,90->0 |
|
||||
| 0 | a | 45 90 | jb,ring,ring,ring,ring,ring | 0->45,45->180,180->270,270->0,0->90,90->0 |
|
||||
| 0 | q | 90 90 | kc,ring,ring,ring,ring | 0->90,90->180,270->0,0->90,90->0 |
|
||||
| 0 | a | 135 90 | ld,ring,ring,ring,ring | 0->135,135->270,270->0,0->90,90->0 |
|
||||
| 0 | a | 180 90 | me,ring,ring,ring,ring | 0->180,180->270,270->0,0->90,90->0 |
|
||||
| 0 | a | 225 90 | nf,ring,ring,ring | 0->225,225->0,0->90,90->0 |
|
||||
| 0 | a | 270 90 | og,ring,ring,ring | 0->270,270->0,0->90,90->0 |
|
||||
| 0 | a | 315 90 | ph,ring,ring | 0->315,315->90,90->0 |
|
||||
|
@ -154,16 +154,17 @@ inline std::uint32_t getRoadGroup(const RoadClassification classification)
|
||||
return upper - dividers;
|
||||
}
|
||||
|
||||
// a road classification is strictly less, if it belongs to a lower general category of roads. E.g.
|
||||
// normal city roads are strictly less of a priority than a motorway and alleys are strictly less
|
||||
// than inner-city roads
|
||||
// LHS road classification is strictly less than RHS, if it belongs to a lower general category
|
||||
// of roads. E.g. normal city roads are strictly less of a priority than a motorway and alleys
|
||||
// are strictly less than inner-city roads.
|
||||
inline bool strictlyLess(const RoadClassification lhs, const RoadClassification rhs)
|
||||
{
|
||||
const auto lhs_class = getRoadGroup(lhs);
|
||||
const auto rhs_class = getRoadGroup(rhs);
|
||||
// different class, not neighbors
|
||||
return lhs_class > rhs_class &&
|
||||
((lhs.GetPriority() - rhs.GetPriority() > 4) || lhs.IsLowPriorityRoadClass());
|
||||
if (!lhs.IsLowPriorityRoadClass() && rhs.IsLowPriorityRoadClass())
|
||||
return false;
|
||||
if (lhs.IsLowPriorityRoadClass() && !rhs.IsLowPriorityRoadClass())
|
||||
return true;
|
||||
|
||||
return getRoadGroup(lhs) > getRoadGroup(rhs);
|
||||
}
|
||||
|
||||
// check whether a link class is the fitting link class to a road
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -70,24 +70,23 @@ parking_class = Set{
|
||||
|
||||
function Guidance.set_classification (highway, result, input_way)
|
||||
if motorway_types[highway] then
|
||||
result.road_classification.motorway_class = true;
|
||||
result.road_classification.motorway_class = true
|
||||
end
|
||||
if link_types[highway] then
|
||||
result.road_classification.link_class = true;
|
||||
result.road_classification.link_class = true
|
||||
end
|
||||
|
||||
-- we distinguish between different service types, if specified, we recognise parking and alleys.
|
||||
-- If we see an unrecognised type, we assume a pure connectivity road. All unspecified are recognised as alley
|
||||
-- All service roads are recognised as alley
|
||||
if highway ~= nil and highway == 'service' then
|
||||
local service_type = input_way:get_value_by_key('service');
|
||||
if service_type ~= nil and parking_class[service_type] then
|
||||
result.road_classification.road_priority_class = road_priority_class.parking;
|
||||
result.road_classification.road_priority_class = road_priority_class.alley
|
||||
else
|
||||
if service_type ~= nil and service_type == 'alley' then
|
||||
result.road_classification.road_priority_class = road_priority_class.alley;
|
||||
result.road_classification.road_priority_class = road_priority_class.alley
|
||||
else
|
||||
if serice_type == nil then
|
||||
result.road_classification.road_priority_class = road_priority_class.alley;
|
||||
result.road_classification.road_priority_class = road_priority_class.alley
|
||||
else
|
||||
result.road_classification.road_priority_class = highway_classes[highway]
|
||||
end
|
||||
|
@ -240,6 +240,7 @@ void AdjustToCombinedTurnStrategy::operator()(RouteStep &step_at_turn_location,
|
||||
setInstructionType(step_at_turn_location, TurnType::Turn);
|
||||
}
|
||||
else if (hasTurnType(step_at_turn_location, TurnType::Turn) &&
|
||||
!hasTurnType(transfer_from_step, TurnType::Suppressed) &&
|
||||
haveSameName(step_prior_to_intersection, transfer_from_step))
|
||||
{
|
||||
setInstructionType(step_at_turn_location, TurnType::Continue);
|
||||
|
@ -852,6 +852,11 @@ SliproadHandler::scaledThresholdByRoadClass(const double max_threshold,
|
||||
case extractor::RoadPriorityClass::SIDE_RESIDENTIAL:
|
||||
factor = 0.3;
|
||||
break;
|
||||
case extractor::RoadPriorityClass::MOTORWAY_LINK:
|
||||
case extractor::RoadPriorityClass::TRUNK_LINK:
|
||||
case extractor::RoadPriorityClass::PRIMARY_LINK:
|
||||
case extractor::RoadPriorityClass::SECONDARY_LINK:
|
||||
case extractor::RoadPriorityClass::TERTIARY_LINK:
|
||||
case extractor::RoadPriorityClass::LINK_ROAD:
|
||||
factor = 0.3;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user