public void cleanNogoList(final List<OsmNode> waypoints) {
        nogopointsAll = nogopoints;
        if (nogopoints == null) {
            return;
        }
        final List<OsmNodeNamed> nogos = new ArrayList<>();
        for (OsmNodeNamed nogo : nogopoints) {
            boolean goodGuy = true;
            for (OsmNode wp : waypoints) {
                if (wp.calcDistance(nogo) < nogo.radius
                        && (!(nogo instanceof OsmNogoPolygon)
                        || (((OsmNogoPolygon) nogo).isClosed
                        ? ((OsmNogoPolygon) nogo).isWithin(wp.ilon, wp.ilat)
                        : ((OsmNogoPolygon) nogo).isOnPolyline(wp.ilon, wp.ilat)))) {
                    goodGuy = false;
                }
            }
            if (goodGuy) {
                nogos.add(nogo);
            }
        }
        nogopoints = nogos.isEmpty() ? null : nogos;
    }
clean the nogolist (previoulsy saved by saveFullNogolist())
by removing nogos with waypoints within
main/src/main/java/cgeo/geocaching/brouter/core/RoutingContext.java