2323
2424import java .util .TreeMap ;
2525
26- import static com .graphhopper .routing .ev .RouteNetwork .LOCAL ;
2726import static org .heigit .ors .routing .graphhopper .extensions .util .PriorityCode .*;
2827
2928/**
3534 */
3635public 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