Skip to content

Commit d864fc4

Browse files
authored
use car_access as count indication for all profiles (graphhopper#3079)
1 parent 40c5fee commit d864fc4

File tree

7 files changed

+104
-78
lines changed

7 files changed

+104
-78
lines changed

core/src/main/java/com/graphhopper/GraphHopper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,7 @@ protected void prepareImport() {
859859
encodedValuesWithProps.putIfAbsent(RoadEnvironment.KEY, new PMap());
860860
// used by instructions...
861861
encodedValuesWithProps.putIfAbsent(Roundabout.KEY, new PMap());
862+
encodedValuesWithProps.putIfAbsent(VehicleAccess.key("car"), new PMap());
862863
encodedValuesWithProps.putIfAbsent(RoadClassLink.KEY, new PMap());
863864
encodedValuesWithProps.putIfAbsent(MaxSpeed.KEY, new PMap());
864865

core/src/main/java/com/graphhopper/routing/InstructionsFromEdges.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ public InstructionsFromEdges(Graph graph, Weighting weighting, EncodedValueLooku
9595
prevNode = -1;
9696
prevInRoundabout = false;
9797
prevName = null;
98-
outEdgeExplorer = graph.createEdgeExplorer(edge -> Double.isFinite(weighting.calcEdgeWeight(edge, false)));
98+
99+
BooleanEncodedValue carAccessEnc = evLookup.getBooleanEncodedValue(VehicleAccess.key("car"));
100+
outEdgeExplorer = graph.createEdgeExplorer(edge -> edge.get(carAccessEnc));
99101
allExplorer = graph.createEdgeExplorer();
100102
}
101103

core/src/test/java/com/graphhopper/reader/osm/GraphHopperOSMTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ public void testNothingHappensWhenProfilesAreChangedForLoad() {
468468
setGraphHopperLocation(ghLoc);
469469
instance.load();
470470
assertEquals(5, instance.getBaseGraph().getNodes());
471-
assertEquals("road_class,road_environment,roundabout,road_class_link,max_speed,foot_subnetwork,car_subnetwork",
471+
assertEquals("road_class,road_environment,roundabout,car_access,road_class_link,max_speed,foot_subnetwork,car_subnetwork",
472472
instance.getEncodingManager().getEncodedValues().stream().map(EncodedValue::getName).collect(Collectors.joining(",")));
473473
}
474474

@@ -500,7 +500,7 @@ public void testFailsForWrongEVConfig() {
500500
setOSMFile(testOsm3);
501501
instance.load();
502502
assertEquals(5, instance.getBaseGraph().getNodes());
503-
assertEquals("road_class,road_environment,roundabout,road_class_link,max_speed,car_subnetwork", instance.getEncodingManager().getEncodedValues().stream().map(EncodedValue::getName).collect(Collectors.joining(",")));
503+
assertEquals("road_class,road_environment,roundabout,car_access,road_class_link,max_speed,car_subnetwork", instance.getEncodingManager().getEncodedValues().stream().map(EncodedValue::getName).collect(Collectors.joining(",")));
504504
}
505505

506506
@Test

core/src/test/java/com/graphhopper/routing/PathTest.java

Lines changed: 77 additions & 61 deletions
Large diffs are not rendered by default.

core/src/test/java/com/graphhopper/util/InstructionListTest.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ public class InstructionListTest {
5555
@BeforeEach
5656
public void setUp() {
5757
speedEnc = new DecimalEncodedValueImpl("speed", 5, 5, true);
58-
carManager = EncodingManager.start().add(speedEnc).add(Roundabout.create())
59-
.add(MaxSpeed.create()).add(RoadClass.create()).add(RoadClassLink.create()).build();
58+
carManager = EncodingManager.start().add(speedEnc).add(Roundabout.create()).add(VehicleAccess.create("car")).
59+
add(MaxSpeed.create()).add(RoadClass.create()).add(RoadClassLink.create()).build();
6060
}
6161

6262
private static List<String> getTurnDescriptions(InstructionList instructionList) {
@@ -299,8 +299,9 @@ public void testNoInstructionIfSlightTurnAndAlternativeIsSharp2() {
299299
@Test
300300
public void testNoInstructionIfSlightTurnAndAlternativeIsSharp3() {
301301
DecimalEncodedValue speedEnc = new DecimalEncodedValueImpl("speed", 4, 2, true);
302-
EncodingManager tmpEM = new EncodingManager.Builder().add(speedEnc).add(RoadClass.create())
303-
.add(RoadClassLink.create()).add(Roundabout.create()).add(MaxSpeed.create()).build();
302+
EncodingManager tmpEM = new EncodingManager.Builder().add(speedEnc).add(RoadClass.create()).
303+
add(VehicleAccess.create("car")).add(RoadClassLink.create()).add(Roundabout.create()).
304+
add(MaxSpeed.create()).build();
304305
EnumEncodedValue<RoadClass> rcEV = tmpEM.getEnumEncodedValue(RoadClass.KEY, RoadClass.class);
305306
BaseGraph g = new BaseGraph.Builder(tmpEM).create();
306307
// real world example: https://graphhopper.com/maps/?point=48.411549,15.599567&point=48.411663%2C15.600527&profile=bike
@@ -338,7 +339,9 @@ public void testNoInstructionIfSlightTurnAndAlternativeIsSharp3() {
338339
@Test
339340
public void testInstructionIfTurn() {
340341
DecimalEncodedValue speedEnc = new DecimalEncodedValueImpl("speed", 4, 2, true);
341-
EncodingManager tmpEM = new EncodingManager.Builder().add(speedEnc).add(RoadClass.create()).add(RoadClassLink.create()).add(Roundabout.create()).add(MaxSpeed.create()).build();
342+
EncodingManager tmpEM = new EncodingManager.Builder().add(speedEnc).add(RoadClass.create()).
343+
add(VehicleAccess.create("car")).add(RoadClassLink.create()).add(Roundabout.create()).
344+
add(MaxSpeed.create()).build();
342345
EnumEncodedValue<RoadClass> rcEV = tmpEM.getEnumEncodedValue(RoadClass.KEY, RoadClass.class);
343346
BaseGraph g = new BaseGraph.Builder(tmpEM).create();
344347
// real world example: https://graphhopper.com/maps/?point=48.412169%2C15.604888&point=48.412251%2C15.60543&profile=bike
@@ -375,8 +378,9 @@ public void testInstructionIfTurn() {
375378
@Test
376379
public void testInstructionIfSlightTurn() {
377380
DecimalEncodedValue speedEnc = new DecimalEncodedValueImpl("speed", 4, 1, false);
378-
EncodingManager tmpEM = new EncodingManager.Builder().add(speedEnc)
379-
.add(Roundabout.create()).add(RoadClass.create()).add(RoadClassLink.create()).add(MaxSpeed.create()).build();
381+
EncodingManager tmpEM = new EncodingManager.Builder().add(speedEnc).add(Roundabout.create()).
382+
add(VehicleAccess.create("car")).add(RoadClass.create()).add(RoadClassLink.create()).
383+
add(MaxSpeed.create()).build();
380384
BaseGraph g = new BaseGraph.Builder(tmpEM).create();
381385
// real world example: https://graphhopper.com/maps/?point=43.729379,7.417697&point=43.729798,7.417263&profile=foot
382386
// From 4 to 3 and 4 to 1
@@ -428,8 +432,9 @@ public void testInstructionIfSlightTurn() {
428432
public void testInstructionWithHighlyCustomProfileWithRoadsBase() {
429433
BooleanEncodedValue roadsAccessEnc = new SimpleBooleanEncodedValue("access", true);
430434
DecimalEncodedValue roadsSpeedEnc = new DecimalEncodedValueImpl("speed", 7, 2, true);
431-
EncodingManager tmpEM = EncodingManager.start().add(roadsAccessEnc).add(roadsSpeedEnc)
432-
.add(RoadClass.create()).add(Roundabout.create()).add(RoadClassLink.create()).add(MaxSpeed.create()).build();
435+
EncodingManager tmpEM = EncodingManager.start().add(roadsAccessEnc).add(roadsSpeedEnc).
436+
add(RoadClass.create()).add(Roundabout.create()).add(RoadClassLink.create()).
437+
add(MaxSpeed.create()).add(VehicleAccess.create("car")).build();
433438
EnumEncodedValue<RoadClass> rcEV = tmpEM.getEnumEncodedValue(RoadClass.KEY, RoadClass.class);
434439
BaseGraph g = new BaseGraph.Builder(tmpEM).create();
435440
// real world example: https://graphhopper.com/maps/?point=55.691214%2C12.57065&point=55.689957%2C12.570387
@@ -523,7 +528,7 @@ public void testSplitWays() {
523528
DecimalEncodedValue roadsSpeedEnc = new DecimalEncodedValueImpl("speed", 7, 2, true);
524529
EncodingManager tmpEM = EncodingManager.start().add(roadsSpeedEnc).
525530
add(RoadClass.create()).add(Roundabout.create()).add(RoadClassLink.create()).
526-
add(MaxSpeed.create()).add(Lanes.create()).build();
531+
add(MaxSpeed.create()).add(Lanes.create()).add(VehicleAccess.create("car")).build();
527532
IntEncodedValue lanesEnc = tmpEM.getIntEncodedValue(Lanes.KEY);
528533
BaseGraph g = new BaseGraph.Builder(tmpEM).create();
529534
// real world example: https://graphhopper.com/maps/?point=43.626238%2C-79.715268&point=43.624647%2C-79.713204&profile=car
@@ -568,7 +573,7 @@ public void testSplitWays() {
568573
@Test
569574
public void testNotSplitWays() {
570575
DecimalEncodedValue roadsSpeedEnc = new DecimalEncodedValueImpl("speed", 7, 2, true);
571-
EncodingManager tmpEM = EncodingManager.start().add(roadsSpeedEnc).
576+
EncodingManager tmpEM = EncodingManager.start().add(roadsSpeedEnc).add(VehicleAccess.create("car")).
572577
add(RoadClass.create()).add(Roundabout.create()).add(RoadClassLink.create()).
573578
add(MaxSpeed.create()).add(Lanes.create()).build();
574579
IntEncodedValue lanesEnc = tmpEM.getIntEncodedValue(Lanes.KEY);

core/src/test/java/com/graphhopper/util/PathSimplificationTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,9 @@ public class PathSimplificationTest {
5353
@Test
5454
public void testScenario() {
5555
DecimalEncodedValue speedEnc = new DecimalEncodedValueImpl("speed", 5, 5, false);
56-
EncodingManager carManager = EncodingManager.start().add(speedEnc)
57-
.add(Roundabout.create()).add(RoadClass.create()).add(RoadClassLink.create()).add(MaxSpeed.create()).build();
56+
EncodingManager carManager = EncodingManager.start().add(speedEnc).
57+
add(VehicleAccess.create("car")).add(Roundabout.create()).add(RoadClass.create()).
58+
add(RoadClassLink.create()).add(MaxSpeed.create()).build();
5859
BaseGraph g = new BaseGraph.Builder(carManager).create();
5960
// 0-1-2
6061
// | | |

web-bundle/src/test/java/com/graphhopper/gpx/GpxConversionsTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ public class GpxConversionsTest {
5858
@BeforeEach
5959
public void setUp() {
6060
speedEnc = new DecimalEncodedValueImpl("speed", 5, 5, false);
61-
carManager = EncodingManager.start().add(speedEnc).add(Roundabout.create()).add(RoadClass.create()).add(RoadClassLink.create()).add(MaxSpeed.create()).build();
61+
carManager = EncodingManager.start().add(speedEnc).add(VehicleAccess.create("car")).
62+
add(Roundabout.create()).add(RoadClass.create()).add(RoadClassLink.create()).add(MaxSpeed.create()).build();
6263
trMap = new TranslationMap().doImport();
6364
}
6465

0 commit comments

Comments
 (0)