From 284f7f50ff7246d70b44c60afd7ba9a53a12cc17 Mon Sep 17 00:00:00 2001 From: Totorrr Date: Sat, 27 Aug 2022 03:08:53 +0200 Subject: [PATCH 1/6] trekking: add whether there is a usable cycleway in the isbike bike hint --- misc/profiles2/trekking.brf | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/misc/profiles2/trekking.brf b/misc/profiles2/trekking.brf index 378a462b..7935e68a 100644 --- a/misc/profiles2/trekking.brf +++ b/misc/profiles2/trekking.brf @@ -231,6 +231,24 @@ assign town_penalty switch estimated_town_class=5 1.4 switch estimated_town_class=6 1.6 99 0 +# +# re-assign isbike considering the presence of a usable cycleway on the highway +# +assign isbike = + or isbike + or cycleway=lane|track|shared_lane|share_busway + or and badoneway cycleway=opposite|opposite_lane|opposite_track + or + and cycleway:left=lane|track|shared_lane|share_busway + switch badoneway + cycleway:left:oneway=no|-1 + true + and cycleway:right=lane|track|shared_lane|share_busway + switch badoneway + cycleway:right:oneway=no|-1 + true + + # # calculate the cost-factor, which is the factor # by which the distance of a way-segment is multiplied From e30ca3b03384d84d3002cd1c2d4d2739d4d37983 Mon Sep 17 00:00:00 2001 From: Totorrr Date: Wed, 1 Oct 2025 17:48:15 +0200 Subject: [PATCH 2/6] trekking: Change the isbike bike hint to have only one version of it --- misc/profiles2/trekking.brf | 48 +++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/misc/profiles2/trekking.brf b/misc/profiles2/trekking.brf index 7935e68a..9655f2b3 100644 --- a/misc/profiles2/trekking.brf +++ b/misc/profiles2/trekking.brf @@ -76,7 +76,28 @@ assign is_ldcr = if ignore_cycleroutes then false else any_cycleroute -assign isbike = or bicycle_road=yes or bicycle=yes or or bicycle=permissive bicycle=designated lcn=yes +assign badoneway = + if reversedirection=yes then + if oneway:bicycle=yes then true + else if oneway= then junction=roundabout + else oneway=yes|true|1 + else oneway=-1 + +# set isbike considering access, local cycle route or the presence of a usable cycleway on the highway +assign isbike = + or or bicycle_road=yes or bicycle=yes or or bicycle=permissive bicycle=designated lcn=yes + or cycleway=lane|track|shared_lane|share_busway + or and badoneway cycleway=opposite|opposite_lane|opposite_track + or + and cycleway:left=lane|track|shared_lane|share_busway + switch badoneway + cycleway:left:oneway=no|-1 + true + and cycleway:right=lane|track|shared_lane|share_busway + switch badoneway + cycleway:right:oneway=no|-1 + true + assign ispaved = or surface=paved|asphalt|concrete|paving_stones|sett smoothness=excellent|good assign isunpaved = not or surface= or ispaved or surface=fine_gravel|cobblestone smoothness=intermediate|bad assign probablyGood = or ispaved and ( or isbike highway=footway ) not isunpaved @@ -155,13 +176,6 @@ assign accesspenalty = # 4 to the costfactor (making it at least 5 - you are allowed # to push your bike) # -assign badoneway = - if reversedirection=yes then - if oneway:bicycle=yes then true - else if oneway= then junction=roundabout - else oneway=yes|true|1 - else oneway=-1 - assign onewaypenalty = if ( badoneway ) then ( @@ -231,24 +245,6 @@ assign town_penalty switch estimated_town_class=5 1.4 switch estimated_town_class=6 1.6 99 0 -# -# re-assign isbike considering the presence of a usable cycleway on the highway -# -assign isbike = - or isbike - or cycleway=lane|track|shared_lane|share_busway - or and badoneway cycleway=opposite|opposite_lane|opposite_track - or - and cycleway:left=lane|track|shared_lane|share_busway - switch badoneway - cycleway:left:oneway=no|-1 - true - and cycleway:right=lane|track|shared_lane|share_busway - switch badoneway - cycleway:right:oneway=no|-1 - true - - # # calculate the cost-factor, which is the factor # by which the distance of a way-segment is multiplied From 8bcede2092aa2aa95b8ba9e4f9117beed6be3c15 Mon Sep 17 00:00:00 2001 From: Totorrr Date: Thu, 2 Oct 2025 18:59:23 +0200 Subject: [PATCH 3/6] brouter-core test: change overrideParam test to avoid false positives --- .../java/btools/router/RoutingEngineTest.java | 16 ++++- .../src/test/resources/paramTrack0.gpx | 67 ------------------- 2 files changed, 14 insertions(+), 69 deletions(-) delete mode 100644 brouter-core/src/test/resources/paramTrack0.gpx diff --git a/brouter-core/src/test/java/btools/router/RoutingEngineTest.java b/brouter-core/src/test/java/btools/router/RoutingEngineTest.java index 1f95be49..1fb4364f 100644 --- a/brouter-core/src/test/java/btools/router/RoutingEngineTest.java +++ b/brouter-core/src/test/java/btools/router/RoutingEngineTest.java @@ -39,16 +39,28 @@ public void routeDestinationPointFarOff() { Assert.assertTrue(msg, msg != null && msg.contains("not found")); } + // check that a (short) route and an alternative route can be computed + // while explicitely overriding a routing profile parameter @Test public void overrideParam() { + // 1st route computing (with param) RoutingContext rctx = new RoutingContext(); rctx.keyValues = new HashMap<>(); rctx.keyValues.put("avoid_unsafe", "1.0"); String msg = calcRoute(8.723037, 50.000491, 8.712737, 50.002899, "paramTrack", rctx); - Assert.assertNull("routing failed: " + msg, msg); + Assert.assertNull("routing failed (paramTrack 1st route): " + msg, msg); + // 2nd route computing (same from/to & same param) + rctx = new RoutingContext(); + rctx.keyValues = new HashMap<>(); + rctx.keyValues.put("avoid_unsafe", "1.0"); + msg = calcRoute(8.723037, 50.000491, 8.712737, 50.002899, "paramTrack", rctx); + Assert.assertNull("routing failed (paramTrack 2nd route): " + msg, msg); - File trackFile = new File(workingDir, "paramTrack1.gpx"); + File trackFile = new File(workingDir, "paramTrack0.gpx"); + trackFile.deleteOnExit(); + trackFile = new File(workingDir, "paramTrack1.gpx"); trackFile.deleteOnExit(); + // checks if a gpx file has been created for the alternative route Assert.assertTrue("result content mismatch", trackFile.exists()); } diff --git a/brouter-core/src/test/resources/paramTrack0.gpx b/brouter-core/src/test/resources/paramTrack0.gpx deleted file mode 100644 index 80d1e3e5..00000000 --- a/brouter-core/src/test/resources/paramTrack0.gpx +++ /dev/null @@ -1,67 +0,0 @@ - - - - - brouter_trekking_0 - - 175.25 - 176.75 - 179.25 - 177.5 - 174.5 - 173.25 - 169.5 - 169.5 - 171.0 - 171.25 - 171.25 - 171.0 - 170.25 - 167.75 - 167.5 - 165.25 - 164.75 - 164.5 - 164.25 - 164.25 - 163.75 - 163.75 - 163.25 - 162.25 - 162.0 - 160.0 - 159.25 - 159.0 - 159.0 - 159.0 - 158.0 - 157.5 - 156.25 - 156.0 - 155.25 - 154.25 - 152.5 - 152.5 - 153.0 - 153.25 - 153.75 - 154.0 - 154.25 - 154.5 - 156.25 - 156.5 - 158.5 - 158.5 - 158.5 - 158.5 - 158.5 - 159.5 - 159.75 - 159.5 - - - From 84569229b16123f836a58ee4ad9d7ebd9a3da17b Mon Sep 17 00:00:00 2001 From: Totorrr Date: Thu, 2 Oct 2025 19:19:45 +0200 Subject: [PATCH 4/6] RouteServerTest: update test route length to match new trekking profile result --- brouter-server/src/test/java/btools/server/RouteServerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brouter-server/src/test/java/btools/server/RouteServerTest.java b/brouter-server/src/test/java/btools/server/RouteServerTest.java index ad6776c5..aea30393 100644 --- a/brouter-server/src/test/java/btools/server/RouteServerTest.java +++ b/brouter-server/src/test/java/btools/server/RouteServerTest.java @@ -93,7 +93,7 @@ public void overrideParameter() throws IOException, URISyntaxException { InputStream inputStream = httpConnection.getInputStream(); JSONObject geoJson = new JSONObject(new String(inputStream.readAllBytes(), StandardCharsets.UTF_8)); - Assert.assertEquals("1570", geoJson.query("/features/0/properties/track-length")); + Assert.assertEquals("1455", geoJson.query("/features/0/properties/track-length")); } @Test From a9e54317191a77257e957f9113b9cfa069804005 Mon Sep 17 00:00:00 2001 From: Totorrr Date: Sat, 4 Oct 2025 01:58:01 +0200 Subject: [PATCH 5/6] trekking: check if cyclestreet=yes to set isbike --- misc/profiles2/trekking.brf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/profiles2/trekking.brf b/misc/profiles2/trekking.brf index 9655f2b3..4f842162 100644 --- a/misc/profiles2/trekking.brf +++ b/misc/profiles2/trekking.brf @@ -85,7 +85,7 @@ assign badoneway = # set isbike considering access, local cycle route or the presence of a usable cycleway on the highway assign isbike = - or or bicycle_road=yes or bicycle=yes or or bicycle=permissive bicycle=designated lcn=yes + or or bicycle_road=yes or cyclestreet=yes or bicycle=yes|permissive|designated lcn=yes or cycleway=lane|track|shared_lane|share_busway or and badoneway cycleway=opposite|opposite_lane|opposite_track or From 7fcd9f20d862f4b0ff93be4df47abea108c9eb18 Mon Sep 17 00:00:00 2001 From: Totorrr Date: Sat, 4 Oct 2025 09:48:38 +0200 Subject: [PATCH 6/6] trekking: partial revert of previous commit, cyclestreet is not in lookup :( --- misc/profiles2/trekking.brf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/profiles2/trekking.brf b/misc/profiles2/trekking.brf index 4f842162..ea99e31d 100644 --- a/misc/profiles2/trekking.brf +++ b/misc/profiles2/trekking.brf @@ -85,7 +85,7 @@ assign badoneway = # set isbike considering access, local cycle route or the presence of a usable cycleway on the highway assign isbike = - or or bicycle_road=yes or cyclestreet=yes or bicycle=yes|permissive|designated lcn=yes + or or bicycle_road=yes or bicycle=yes|permissive|designated lcn=yes # also add cyclestreet=yes when lookup has it or cycleway=lane|track|shared_lane|share_busway or and badoneway cycleway=opposite|opposite_lane|opposite_track or