From 4624b0f4882de621d7c4c03db2225a08d8f7b9ed Mon Sep 17 00:00:00 2001 From: Steven te Brinke Date: Sat, 1 Aug 2020 13:16:05 +0200 Subject: [PATCH 1/3] Set values once for clarity. --- .../bike/RoadBikeFlagEncoder.java | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java b/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java index d5c8200005..3a5c7cd9e6 100644 --- a/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java +++ b/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java @@ -81,7 +81,7 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts, preferHighwayTags.add(VAL_SECONDARY_LINK); preferHighwayTags.add(VAL_TERTIARY); preferHighwayTags.add(VAL_TERTIARY_LINK); - preferHighwayTags.add(VAL_RESIDENTIAL); + preferHighwayTags.add(VAL_UNCLASSIFIED); setTrackTypeSpeed(VAL_GRADE_1, 20); // paved setTrackTypeSpeed("grade2", 10); // now unpaved ... @@ -123,17 +123,17 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts, setHighwaySpeed("road", 12); setHighwaySpeed(VAL_TRACK, PUSHING_SECTION_SPEED / 2); // assume unpaved setHighwaySpeed(VAL_SERVICE, 12); - setHighwaySpeed(VAL_UNCLASSIFIED, 16); - setHighwaySpeed(VAL_RESIDENTIAL, 16); + setHighwaySpeed(VAL_UNCLASSIFIED, 20); + setHighwaySpeed(VAL_RESIDENTIAL, 18); setHighwaySpeed("trunk", 20); setHighwaySpeed("trunk_link", 20); - setHighwaySpeed("primary", 20); - setHighwaySpeed("primary_link", 20); - setHighwaySpeed(VAL_SECONDARY, 20); - setHighwaySpeed(VAL_SECONDARY_LINK, 20); - setHighwaySpeed(VAL_TERTIARY, 20); - setHighwaySpeed(VAL_TERTIARY_LINK, 20); + setHighwaySpeed("primary", 22); + setHighwaySpeed("primary_link", 22); + setHighwaySpeed(VAL_SECONDARY, 24); + setHighwaySpeed(VAL_SECONDARY_LINK, 24); + setHighwaySpeed(VAL_TERTIARY, 26); + setHighwaySpeed(VAL_TERTIARY_LINK, 26); addPushingSection("path"); addPushingSection("footway"); @@ -156,20 +156,8 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts, // REQUIRED ADDON OR OVERWRITE OF Default GH-RoadBikeProfile // created by MARQ24 //********************************************************************** - preferHighwayTags.remove(VAL_RESIDENTIAL); - preferHighwayTags.add(VAL_UNCLASSIFIED); // adjusted speeds... - setHighwaySpeed("trunk", 20); - setHighwaySpeed("trunk_link", 20); - setHighwaySpeed("primary", 22); - setHighwaySpeed("primary_link", 22); - setHighwaySpeed(VAL_SECONDARY, 24); - setHighwaySpeed(VAL_SECONDARY_LINK, 24); - setHighwaySpeed(VAL_TERTIARY, 26); - setHighwaySpeed(VAL_TERTIARY_LINK, 26); - setHighwaySpeed("road", 20); - setHighwaySpeed(VAL_UNCLASSIFIED, 20); setHighwaySpeed(VAL_RESIDENTIAL, new SpeedValue(18, UpdateType.DOWNGRADE_ONLY)); // make sure that we will avoid 'cycleway' & 'service' ways where ever From 017a5c65b7ac9b308e78912317a0751f6cfd16ad Mon Sep 17 00:00:00 2001 From: Steven te Brinke Date: Sat, 1 Aug 2020 13:56:17 +0200 Subject: [PATCH 2/3] Allow surface types to downgrade only. --- .../bike/CommonBikeFlagEncoder.java | 3 ++ .../bike/RoadBikeFlagEncoder.java | 54 ++++--------------- 2 files changed, 14 insertions(+), 43 deletions(-) diff --git a/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/CommonBikeFlagEncoder.java b/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/CommonBikeFlagEncoder.java index 7090c7d96b..40463f8656 100644 --- a/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/CommonBikeFlagEncoder.java +++ b/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/CommonBikeFlagEncoder.java @@ -839,6 +839,9 @@ protected void setTrackTypeSpeed(String tracktype, SpeedValue speed) { protected void setSurfaceSpeed(String surface, int speed) { surfaceSpeeds.put(surface, new SpeedValue(speed)); } + protected void setSurfaceSpeed(String surface, int speed, UpdateType type) { + surfaceSpeeds.put(surface, new SpeedValue(speed, type)); + } protected void setSurfaceSpeed(String surface, SpeedValue speed) { surfaceSpeeds.put(surface, speed); } diff --git a/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java b/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java index 3a5c7cd9e6..1d8b7d99f8 100644 --- a/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java +++ b/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/flagencoders/bike/RoadBikeFlagEncoder.java @@ -89,16 +89,16 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts, setTrackTypeSpeed("grade4", PUSHING_SECTION_SPEED); setTrackTypeSpeed("grade5", PUSHING_SECTION_SPEED); - setSurfaceSpeed("paved", 20); - setSurfaceSpeed("asphalt", 20); - setSurfaceSpeed("cobblestone", 10); - setSurfaceSpeed("cobblestone:flattened", 10); - setSurfaceSpeed("sett", 10); - setSurfaceSpeed("concrete", 20); - setSurfaceSpeed("concrete:lanes", 16); - setSurfaceSpeed("concrete:plates", 16); - setSurfaceSpeed("paving_stones", 10); - setSurfaceSpeed("paving_stones:30", 10); + setSurfaceSpeed("paved", 26, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("asphalt", 26, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("cobblestone", 10, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("cobblestone:flattened", 10, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("sett", 10, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("concrete", 26, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("concrete:lanes", 16, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("concrete:plates", 16, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("paving_stones", 10, UpdateType.DOWNGRADE_ONLY); + setSurfaceSpeed("paving_stones:30", 10, UpdateType.DOWNGRADE_ONLY); setSurfaceSpeed("unpaved", PUSHING_SECTION_SPEED / 2); setSurfaceSpeed("compacted", PUSHING_SECTION_SPEED / 2); setSurfaceSpeed("dirt", PUSHING_SECTION_SPEED / 2); @@ -151,44 +151,12 @@ public RoadBikeFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts, setAvoidSpeedLimit(81); setSpecificClassBicycle("roadcycling"); - // MARQ24 MOD START - //********************************************************************** - // REQUIRED ADDON OR OVERWRITE OF Default GH-RoadBikeProfile - // created by MARQ24 - //********************************************************************** - - // adjusted speeds... - setHighwaySpeed(VAL_RESIDENTIAL, new SpeedValue(18, UpdateType.DOWNGRADE_ONLY)); - - // make sure that we will avoid 'cycleway' & 'service' ways where ever - // it is possible... - setHighwaySpeed("cycleway", new SpeedValue(8, UpdateType.DOWNGRADE_ONLY)); - setHighwaySpeed(VAL_SERVICE, new SpeedValue(8, UpdateType.DOWNGRADE_ONLY)); - - // overwriting also the SurfaceSpeeds... to the "max" of the residential speed - setSurfaceSpeed("paved", new SpeedValue(18, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("asphalt", new SpeedValue(18, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("concrete", new SpeedValue(18, UpdateType.UPGRADE_ONLY)); - - setSurfaceSpeed("concrete:lanes", new SpeedValue(16, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("concrete:plates", new SpeedValue(16, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("paving_stones", new SpeedValue(10, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("paving_stones:30", new SpeedValue(10, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("cobblestone", new SpeedValue(10, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("cobblestone:flattened", new SpeedValue(10, UpdateType.UPGRADE_ONLY)); - setSurfaceSpeed("sett", new SpeedValue(10, UpdateType.UPGRADE_ONLY)); - - // overwriting also the trackTypeSpeeds... to the "max" of the residential speed - setTrackTypeSpeed(VAL_GRADE_1, new SpeedValue(18, UpdateType.UPGRADE_ONLY)); - setTrackTypeSpeed("grade2", new SpeedValue(10, UpdateType.UPGRADE_ONLY)); - // HSW - asphalt cycleway vs asphalt roundabout // 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 // Aschloh roundabout vs cycleway (cycle relation) & service shortcut // 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 - LOGGER.info("NextGen RoadBike FlagEncoder is active..."); - // MARQ24 MOD END + this.init(); } From 7c714df41546031cebc77789fe85964cd6d081b2 Mon Sep 17 00:00:00 2001 From: Steven te Brinke Date: Sat, 1 Aug 2020 14:20:51 +0200 Subject: [PATCH 3/3] Adds road bike speed changes to changelog. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90ec9aa41b..eb403bd9a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) - Check whether routing points are within different countries before routing and break if they are and all borders should be avoided ### Fixed ### Changed +- Improved road bike average speed to be faster on cycleways and slower on bad road surface or certain road types such as footways. ### Deprecated ## [6.2.0] - 2020-07-15