From 2ee44b7b8530ed052f24ed49c2b46db34d85d25c Mon Sep 17 00:00:00 2001 From: afischerdev Date: Wed, 12 Mar 2025 19:33:12 +0100 Subject: [PATCH] added nogo logic on round trip points --- .../src/main/java/btools/router/RoutingEngine.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index f512a23..f58a618 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -1140,6 +1140,18 @@ public class RoutingEngine extends Thread { } else { seg = searchTrack(matchedWaypoints.get(i), matchedWaypoints.get(i + 1), i == matchedWaypoints.size() - 2 ? nearbyTrack : null, refTracks[i]); wptIndex = i; + if (engineMode == BROUTER_ENGINEMODE_ROUNDTRIP) { + if (i < matchedWaypoints.size() - 2) { + OsmNode lastPoint = seg.containsNode(matchedWaypoints.get(i+1).node1) ? matchedWaypoints.get(i+1).node1 : matchedWaypoints.get(i+1).node2; + OsmNodeNamed nogo = new OsmNodeNamed(lastPoint); + nogo.radius = 5; + nogo.name = "nogo" + (i+1); + nogo.nogoWeight = 9999.; + nogo.isNogo = true; + if (routingContext.nogopoints == null) routingContext.nogopoints = new ArrayList<>(); + routingContext.nogopoints.add(nogo); + } + } } if (seg == null) return null;