disabled beelines on round trip

This commit is contained in:
afischerdev 2025-01-30 18:11:41 +01:00
parent be2b601964
commit 0b5df946b9

View File

@ -1204,49 +1204,52 @@ public class RoutingEngine extends Thread {
for (int i = 0; i < unmatchedWaypoints.size(); i++) { for (int i = 0; i < unmatchedWaypoints.size(); i++) {
MatchedWaypoint wp = unmatchedWaypoints.get(i); MatchedWaypoint wp = unmatchedWaypoints.get(i);
if (wp.waypoint.calcDistance(wp.crosspoint) > routingContext.waypointCatchingRange) { if (wp.waypoint.calcDistance(wp.crosspoint) > routingContext.waypointCatchingRange) {
MatchedWaypoint nmw = new MatchedWaypoint(); if (engineMode != BROUTER_ENGINEMODE_ROUNDTRIP) {
if (i == 0) { MatchedWaypoint nmw = new MatchedWaypoint();
OsmNodeNamed onn = new OsmNodeNamed(wp.waypoint); if (i == 0) {
onn.name = "from"; OsmNodeNamed onn = new OsmNodeNamed(wp.waypoint);
nmw.waypoint = onn; onn.name = "from";
nmw.name = onn.name; nmw.waypoint = onn;
nmw.crosspoint = new OsmNode(wp.waypoint.ilon, wp.waypoint.ilat); nmw.name = onn.name;
nmw.direct = true; nmw.crosspoint = new OsmNode(wp.waypoint.ilon, wp.waypoint.ilat);
onn = new OsmNodeNamed(wp.crosspoint); nmw.direct = true;
onn.name = wp.name + "_add"; onn = new OsmNodeNamed(wp.crosspoint);
wp.waypoint = onn; onn.name = wp.name + "_add";
waypoints.add(nmw); wp.waypoint = onn;
wp.name = wp.name + "_add"; waypoints.add(nmw);
waypoints.add(wp); wp.name = wp.name + "_add";
} else { waypoints.add(wp);
OsmNodeNamed onn = new OsmNodeNamed(wp.crosspoint); } else {
onn.name = wp.name + "_add"; OsmNodeNamed onn = new OsmNodeNamed(wp.crosspoint);
nmw.waypoint = onn; onn.name = wp.name + "_add";
nmw.crosspoint = new OsmNode(wp.crosspoint.ilon, wp.crosspoint.ilat); nmw.waypoint = onn;
nmw.node1 = new OsmNode(wp.node1.ilon, wp.node1.ilat); nmw.crosspoint = new OsmNode(wp.crosspoint.ilon, wp.crosspoint.ilat);
nmw.node2 = new OsmNode(wp.node2.ilon, wp.node2.ilat); nmw.node1 = new OsmNode(wp.node1.ilon, wp.node1.ilat);
nmw.direct = true; nmw.node2 = new OsmNode(wp.node2.ilon, wp.node2.ilat);
nmw.direct = true;
if (wp.name != null) nmw.name = wp.name; if (wp.name != null) nmw.name = wp.name;
waypoints.add(nmw); waypoints.add(nmw);
wp.name = wp.name + "_add"; wp.name = wp.name + "_add";
waypoints.add(wp); waypoints.add(wp);
if (wp.name.startsWith("via")) { if (wp.name.startsWith("via")) {
wp.direct = true; wp.direct = true;
MatchedWaypoint emw = new MatchedWaypoint(); MatchedWaypoint emw = new MatchedWaypoint();
OsmNodeNamed onn2 = new OsmNodeNamed(wp.crosspoint); OsmNodeNamed onn2 = new OsmNodeNamed(wp.crosspoint);
onn2.name = wp.name + "_2"; onn2.name = wp.name + "_2";
emw.name = onn2.name; emw.name = onn2.name;
emw.waypoint = onn2; emw.waypoint = onn2;
emw.crosspoint = new OsmNode(nmw.crosspoint.ilon, nmw.crosspoint.ilat); emw.crosspoint = new OsmNode(nmw.crosspoint.ilon, nmw.crosspoint.ilat);
emw.node1 = new OsmNode(nmw.node1.ilon, nmw.node1.ilat); emw.node1 = new OsmNode(nmw.node1.ilon, nmw.node1.ilat);
emw.node2 = new OsmNode(nmw.node2.ilon, nmw.node2.ilat); emw.node2 = new OsmNode(nmw.node2.ilon, nmw.node2.ilat);
emw.direct = false; emw.direct = false;
waypoints.add(emw); waypoints.add(emw);
}
wp.crosspoint = new OsmNode(wp.waypoint.ilon, wp.waypoint.ilat);
} }
wp.crosspoint = new OsmNode(wp.waypoint.ilon, wp.waypoint.ilat); } else {
waypoints.add(wp);
} }
} else { } else {
waypoints.add(wp); waypoints.add(wp);
} }