diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index 18d7149..d714259 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -592,8 +592,8 @@ public class RoutingEngine extends Thread { int startSize = matchedWaypoints.size(); matchWaypointsToNodes(matchedWaypoints); if (startSize < matchedWaypoints.size()) { - refTracks = new OsmTrack[matchedWaypoints.size()]; // used ways for alternatives - lastTracks = new OsmTrack[matchedWaypoints.size()]; + refTracks = new OsmTrack[matchedWaypoints.size()-1]; // used ways for alternatives + lastTracks = new OsmTrack[matchedWaypoints.size()-1]; hasDirectRouting = true; } @@ -624,9 +624,9 @@ public class RoutingEngine extends Thread { matchedWaypoints.add(nearbyTrack.endPoint); } } else { - if (lastTracks.length < matchedWaypoints.size()) { - refTracks = new OsmTrack[matchedWaypoints.size()]; // used ways for alternatives - lastTracks = new OsmTrack[matchedWaypoints.size()]; + if (lastTracks.length < matchedWaypoints.size()-1) { + refTracks = new OsmTrack[matchedWaypoints.size()-1]; // used ways for alternatives + lastTracks = new OsmTrack[matchedWaypoints.size()-1]; hasDirectRouting = true; } }