From ea75540ae262b7744b03d8d1859c8f191058472f Mon Sep 17 00:00:00 2001 From: ratrun Date: Fri, 23 Aug 2024 15:00:25 +0200 Subject: [PATCH] Use surface speed at bridgleways for bicycle profiles --- .../parsers/BikeCommonAverageSpeedParser.java | 3 ++- .../routing/util/parsers/BikeTagParserTest.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/graphhopper/routing/util/parsers/BikeCommonAverageSpeedParser.java b/core/src/main/java/com/graphhopper/routing/util/parsers/BikeCommonAverageSpeedParser.java index 29ee9dbb31c..eb598f7d2c0 100644 --- a/core/src/main/java/com/graphhopper/routing/util/parsers/BikeCommonAverageSpeedParser.java +++ b/core/src/main/java/com/graphhopper/routing/util/parsers/BikeCommonAverageSpeedParser.java @@ -160,7 +160,8 @@ else if (way.hasTag("bicycle", "yes")) speed = PUSHING_SECTION_SPEED; // unknown surface } else if (way.hasTag("service")) { speed = highwaySpeeds.get("living_street"); - } else if ("track".equals(highwayValue)) { + } else if ("track".equals(highwayValue) || + "bridleway".equals(highwayValue) ) { if (surfaceSpeed != null) speed = surfaceSpeed; else if (trackTypeSpeeds.containsKey(trackTypeValue)) diff --git a/core/src/test/java/com/graphhopper/routing/util/parsers/BikeTagParserTest.java b/core/src/test/java/com/graphhopper/routing/util/parsers/BikeTagParserTest.java index d9073b381b9..8b377a85604 100644 --- a/core/src/test/java/com/graphhopper/routing/util/parsers/BikeTagParserTest.java +++ b/core/src/test/java/com/graphhopper/routing/util/parsers/BikeTagParserTest.java @@ -305,6 +305,23 @@ public void testSpeedAndPriority() { assertPriorityAndSpeed(VERY_NICE, PUSHING_SECTION_SPEED, way); way.setTag("bicycle", "yes"); assertPriorityAndSpeed(VERY_NICE, 18, way); + + way.clearTags(); + way.setTag("highway", "bridleway"); + assertPriorityAndSpeed(AVOID, PUSHING_SECTION_SPEED, way); + way.setTag("surface", "gravel"); + assertPriorityAndSpeed(AVOID, 12, way); + way.setTag("bicycle", "designated"); + assertPriorityAndSpeed(PREFER, 12, way); + + way.clearTags(); + way.setTag("highway", "path"); + assertPriorityAndSpeed(SLIGHT_AVOID, PUSHING_SECTION_SPEED, way); + way.setTag("surface", "gravel"); + assertPriorityAndSpeed(SLIGHT_AVOID, PUSHING_SECTION_SPEED, way); + way.setTag("bicycle", "designated"); + assertPriorityAndSpeed(VERY_NICE, 12, way); + } @Test