diff --git a/brouter-core/src/main/java/btools/router/RoutingContext.java b/brouter-core/src/main/java/btools/router/RoutingContext.java index 5aad195..e8a3d65 100644 --- a/brouter-core/src/main/java/btools/router/RoutingContext.java +++ b/brouter-core/src/main/java/btools/router/RoutingContext.java @@ -294,9 +294,10 @@ public final class RoutingContext { public void checkMatchedWaypointAgainstNogos(List matchedWaypoints) { if (nogopoints == null) return; - List newMatchedWaypoints = new ArrayList<>(); int theSize = matchedWaypoints.size(); + if (theSize<2) return; int removed = 0; + List newMatchedWaypoints = new ArrayList<>(); MatchedWaypoint prevMwp = null; boolean prevMwpIsInside = false; for (int i = 0; i < theSize; i++) { @@ -304,7 +305,8 @@ public final class RoutingContext { boolean isInsideNogo = false; OsmNode wp = mwp.crosspoint; for (OsmNodeNamed nogo : nogopoints) { - if (wp.calcDistance(nogo) < nogo.radius + if (Double.isNaN(nogo.nogoWeight) + && wp.calcDistance(nogo) < nogo.radius && (!(nogo instanceof OsmNogoPolygon) || (((OsmNogoPolygon) nogo).isClosed ? ((OsmNogoPolygon) nogo).isWithin(wp.ilon, wp.ilat)