Skip to content

Commit f4fa4d4

Browse files
committed
fix: tweak road bike flag encoder in order to restore its desired behavior
1 parent 85aceeb commit f4fa4d4

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

ors-engine/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
import java.util.TreeMap;
2525

26-
import static com.graphhopper.routing.ev.RouteNetwork.LOCAL;
2726
import static org.heigit.ors.routing.graphhopper.extensions.util.PriorityCode.*;
2827

2928
/**
@@ -35,6 +34,7 @@
3534
*/
3635
public class RoadBikeFlagEncoder extends CommonBikeFlagEncoder {
3736
private static final int MEAN_SPEED = 25;
37+
protected static final int PAVED_WAY_SPEED = 20;
3838
public static final String VAL_SECONDARY = "secondary";
3939
public static final String VAL_SECONDARY_LINK = "secondary_link";
4040
public static final String VAL_TERTIARY = "tertiary";
@@ -83,22 +83,23 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts,
8383
preferHighwayTags.add(VAL_TERTIARY_LINK);
8484
preferHighwayTags.add(VAL_UNCLASSIFIED);
8585

86-
setTrackTypeSpeed(VAL_GRADE_1, 20); // paved
86+
setTrackTypeSpeed(VAL_GRADE_1, PAVED_WAY_SPEED); // paved
8787
setTrackTypeSpeed("grade2", 10); // now unpaved ...
8888
setTrackTypeSpeed("grade3", PUSHING_SECTION_SPEED);
8989
setTrackTypeSpeed("grade4", PUSHING_SECTION_SPEED);
9090
setTrackTypeSpeed("grade5", PUSHING_SECTION_SPEED);
9191

92-
setSurfaceSpeed("paved", 26, UpdateType.DOWNGRADE_ONLY);
93-
setSurfaceSpeed("asphalt", 26, UpdateType.DOWNGRADE_ONLY);
92+
setSurfaceSpeed("paved", PAVED_WAY_SPEED, UpdateType.UPGRADE_ONLY);
93+
setSurfaceSpeed("asphalt", PAVED_WAY_SPEED, UpdateType.UPGRADE_ONLY);
94+
setSurfaceSpeed("concrete", PAVED_WAY_SPEED, UpdateType.UPGRADE_ONLY);
95+
9496
setSurfaceSpeed("cobblestone", 10, UpdateType.DOWNGRADE_ONLY);
9597
setSurfaceSpeed("cobblestone:flattened", 10, UpdateType.DOWNGRADE_ONLY);
9698
setSurfaceSpeed("sett", 10, UpdateType.DOWNGRADE_ONLY);
97-
setSurfaceSpeed("concrete", 26, UpdateType.DOWNGRADE_ONLY);
9899
setSurfaceSpeed("concrete:lanes", 16, UpdateType.DOWNGRADE_ONLY);
99100
setSurfaceSpeed("concrete:plates", 16, UpdateType.DOWNGRADE_ONLY);
100-
setSurfaceSpeed("paving_stones", 10, UpdateType.DOWNGRADE_ONLY);
101-
setSurfaceSpeed("paving_stones:30", 10, UpdateType.DOWNGRADE_ONLY);
101+
setSurfaceSpeed("paving_stones", 12, UpdateType.DOWNGRADE_ONLY);
102+
setSurfaceSpeed("paving_stones:30", 12, UpdateType.DOWNGRADE_ONLY);
102103
setSurfaceSpeed("unpaved", PUSHING_SECTION_SPEED / 2);
103104
setSurfaceSpeed("compacted", PUSHING_SECTION_SPEED / 2);
104105
setSurfaceSpeed("dirt", PUSHING_SECTION_SPEED / 2);
@@ -116,16 +117,16 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts,
116117
setSurfaceSpeed("sand", PUSHING_SECTION_SPEED / 2);
117118
setSurfaceSpeed("wood", PUSHING_SECTION_SPEED / 2);
118119

119-
setHighwaySpeed(KEY_CYCLEWAY, 18);
120+
setHighwaySpeed(KEY_CYCLEWAY, new SpeedValue(18, UpdateType.DOWNGRADE_ONLY));
120121
setHighwaySpeed("living_street", 10);
121122
setHighwaySpeed("path", 8);
122123
setHighwaySpeed("footway", 6);
123124
setHighwaySpeed("pedestrian", 6);
124-
setHighwaySpeed(VAL_ROAD, 20);
125+
setHighwaySpeed(VAL_ROAD, PAVED_WAY_SPEED);
125126
setHighwaySpeed(VAL_TRACK, PUSHING_SECTION_SPEED / 2); // assume unpaved
126127
setHighwaySpeed(VAL_SERVICE, 12);
127-
setHighwaySpeed(VAL_UNCLASSIFIED, 20);
128-
setHighwaySpeed(VAL_RESIDENTIAL, 18);
128+
setHighwaySpeed(VAL_UNCLASSIFIED, PAVED_WAY_SPEED);
129+
setHighwaySpeed(VAL_RESIDENTIAL, new SpeedValue(18, UpdateType.DOWNGRADE_ONLY));
129130

130131
setHighwaySpeed("trunk", 20);
131132
setHighwaySpeed("trunk_link", 20);
@@ -142,18 +143,10 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts,
142143
addPushingSection("steps");
143144
addPushingSection(KEY_BRIDLEWAY);
144145

145-
routeMap.put(LOCAL, UNCHANGED.getValue());
146-
147146
blockByDefaultBarriers.add("kissing_gate");
148147

149148
setAvoidSpeedLimit(81);
150149
setSpecificClassBicycle("roadcycling");
151-
152-
// HSW - asphalt cycleway vs asphalt roundabout
153-
// http://localhost:3035/directions?n1=51.965101&n2=8.24595&n3=18&a=51.965555,8.243968,51.964878,8.245057&b=1c&c=0&g1=-1&g2=0&h2=3&k1=en-US&k2=km
154-
155-
// Aschloh roundabout vs cycleway (cycle relation) & service shortcut
156-
// http://localhost:3035/directions?n1=52.064701&n2=8.386386&n3=19&a=52.065407,8.386171,52.064821,8.386833&b=1c&c=0&g1=-1&g2=0&h2=3&k1=en-US&k2=km
157150
}
158151

159152
public double getMeanSpeed() {

0 commit comments

Comments
 (0)