Merge pull request #518 from afischerdev/fix-nogos

Fix wpt and nogo handling
This commit is contained in:
afischerdev 2023-03-28 09:38:18 +02:00 committed by GitHub
commit 88977cca3a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -294,9 +294,10 @@ public final class RoutingContext {
public void checkMatchedWaypointAgainstNogos(List<MatchedWaypoint> matchedWaypoints) {
if (nogopoints == null) return;
List<MatchedWaypoint> newMatchedWaypoints = new ArrayList<>();
int theSize = matchedWaypoints.size();
if (theSize<2) return;
int removed = 0;
List<MatchedWaypoint> 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)