23
23
24
24
import java .util .TreeMap ;
25
25
26
- import static com .graphhopper .routing .ev .RouteNetwork .LOCAL ;
27
26
import static org .heigit .ors .routing .graphhopper .extensions .util .PriorityCode .*;
28
27
29
28
/**
35
34
*/
36
35
public class RoadBikeFlagEncoder extends CommonBikeFlagEncoder {
37
36
private static final int MEAN_SPEED = 25 ;
37
+ protected static final int PAVED_WAY_SPEED = 20 ;
38
38
public static final String VAL_SECONDARY = "secondary" ;
39
39
public static final String VAL_SECONDARY_LINK = "secondary_link" ;
40
40
public static final String VAL_TERTIARY = "tertiary" ;
@@ -83,22 +83,23 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts,
83
83
preferHighwayTags .add (VAL_TERTIARY_LINK );
84
84
preferHighwayTags .add (VAL_UNCLASSIFIED );
85
85
86
- setTrackTypeSpeed (VAL_GRADE_1 , 20 ); // paved
86
+ setTrackTypeSpeed (VAL_GRADE_1 , PAVED_WAY_SPEED ); // paved
87
87
setTrackTypeSpeed ("grade2" , 10 ); // now unpaved ...
88
88
setTrackTypeSpeed ("grade3" , PUSHING_SECTION_SPEED );
89
89
setTrackTypeSpeed ("grade4" , PUSHING_SECTION_SPEED );
90
90
setTrackTypeSpeed ("grade5" , PUSHING_SECTION_SPEED );
91
91
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
+
94
96
setSurfaceSpeed ("cobblestone" , 10 , UpdateType .DOWNGRADE_ONLY );
95
97
setSurfaceSpeed ("cobblestone:flattened" , 10 , UpdateType .DOWNGRADE_ONLY );
96
98
setSurfaceSpeed ("sett" , 10 , UpdateType .DOWNGRADE_ONLY );
97
- setSurfaceSpeed ("concrete" , 26 , UpdateType .DOWNGRADE_ONLY );
98
99
setSurfaceSpeed ("concrete:lanes" , 16 , UpdateType .DOWNGRADE_ONLY );
99
100
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 );
102
103
setSurfaceSpeed ("unpaved" , PUSHING_SECTION_SPEED / 2 );
103
104
setSurfaceSpeed ("compacted" , PUSHING_SECTION_SPEED / 2 );
104
105
setSurfaceSpeed ("dirt" , PUSHING_SECTION_SPEED / 2 );
@@ -116,16 +117,16 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts,
116
117
setSurfaceSpeed ("sand" , PUSHING_SECTION_SPEED / 2 );
117
118
setSurfaceSpeed ("wood" , PUSHING_SECTION_SPEED / 2 );
118
119
119
- setHighwaySpeed (KEY_CYCLEWAY , 18 );
120
+ setHighwaySpeed (KEY_CYCLEWAY , new SpeedValue ( 18 , UpdateType . DOWNGRADE_ONLY ) );
120
121
setHighwaySpeed ("living_street" , 10 );
121
122
setHighwaySpeed ("path" , 8 );
122
123
setHighwaySpeed ("footway" , 6 );
123
124
setHighwaySpeed ("pedestrian" , 6 );
124
- setHighwaySpeed (VAL_ROAD , 20 );
125
+ setHighwaySpeed (VAL_ROAD , PAVED_WAY_SPEED );
125
126
setHighwaySpeed (VAL_TRACK , PUSHING_SECTION_SPEED / 2 ); // assume unpaved
126
127
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 ) );
129
130
130
131
setHighwaySpeed ("trunk" , 20 );
131
132
setHighwaySpeed ("trunk_link" , 20 );
@@ -142,18 +143,10 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts,
142
143
addPushingSection ("steps" );
143
144
addPushingSection (KEY_BRIDLEWAY );
144
145
145
- routeMap .put (LOCAL , UNCHANGED .getValue ());
146
-
147
146
blockByDefaultBarriers .add ("kissing_gate" );
148
147
149
148
setAvoidSpeedLimit (81 );
150
149
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
157
150
}
158
151
159
152
public double getMeanSpeed () {
0 commit comments