diff --git a/brouter-core/src/main/java/btools/router/RoutingContext.java b/brouter-core/src/main/java/btools/router/RoutingContext.java index bc8706e..8daa9da 100644 --- a/brouter-core/src/main/java/btools/router/RoutingContext.java +++ b/brouter-core/src/main/java/btools/router/RoutingContext.java @@ -77,6 +77,7 @@ public final class RoutingContext { public boolean correctMisplacedViaPoints; public double correctMisplacedViaPointsDistance; public boolean useDynamicDistance; + public boolean buildBeelineOnRange; public AreaInfo ai; @@ -171,7 +172,8 @@ public final class RoutingContext { // Constant power of the biker (in W) bikerPower = expctxGlobal.getVariableValue("bikerPower", 100.f); - useDynamicDistance = expctxGlobal.getVariableValue("use_dynamic_range", 0f) == 1f; + useDynamicDistance = expctxGlobal.getVariableValue("use_dynamic_range", 1f) == 1f; + buildBeelineOnRange = expctxGlobal.getVariableValue("add_beeline", 0f) == 1f; boolean test = expctxGlobal.getVariableValue("check_start_way", 1f) == 1f; if (!test) freeNoWays(); diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index dac558d..f512a23 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -1473,6 +1473,7 @@ public class RoutingEngine extends Thread { private void matchWaypointsToNodes(List unmatchedWaypoints) { resetCache(false); boolean useDynamicDistance = routingContext.useDynamicDistance; + boolean bAddBeeline = routingContext.buildBeelineOnRange; double range = routingContext.waypointCatchingRange; boolean ok = nodesCache.matchWaypointsToNodes(unmatchedWaypoints, range, islandNodePairs); if (!ok && useDynamicDistance) { @@ -1493,7 +1494,7 @@ public class RoutingEngine extends Thread { } } // add beeline points when not already done - if (useDynamicDistance && !useNodePoints && engineMode != BROUTER_ENGINEMODE_ROUNDTRIP) { + if (useDynamicDistance && !useNodePoints && bAddBeeline) { List waypoints = new ArrayList<>(); for (int i = 0; i < unmatchedWaypoints.size(); i++) { MatchedWaypoint wp = unmatchedWaypoints.get(i);