Fix route calculation
This commit is contained in:
parent
5afe3a90ad
commit
c638e01dfd
2 changed files with 6 additions and 5 deletions
|
@ -1,5 +1,6 @@
|
||||||
package net.osmand.router;
|
package net.osmand.router;
|
||||||
|
|
||||||
|
import net.osmand.NativeLibrary;
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
import net.osmand.binary.BinaryMapIndexReader;
|
import net.osmand.binary.BinaryMapIndexReader;
|
||||||
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteTypeRule;
|
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteTypeRule;
|
||||||
|
@ -1721,7 +1722,7 @@ public class RouteResultPreparation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator<RouteSegment> it;
|
Iterator<RouteSegment> it;
|
||||||
if(rr.getPreAttachedRoutes(pointInd) != null) {
|
if (rr.getPreAttachedRoutes(pointInd) != null) {
|
||||||
final RouteSegmentResult[] list = rr.getPreAttachedRoutes(pointInd);
|
final RouteSegmentResult[] list = rr.getPreAttachedRoutes(pointInd);
|
||||||
it = new Iterator<BinaryRoutePlanner.RouteSegment>() {
|
it = new Iterator<BinaryRoutePlanner.RouteSegment>() {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -1740,7 +1741,7 @@ public class RouteResultPreparation {
|
||||||
public void remove() {
|
public void remove() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else if (recalculation) {
|
} else if (recalculation || ctx.nativeLib == null) {
|
||||||
RouteSegment rt = ctx.loadRouteSegment(road.getPoint31XTile(pointInd), road.getPoint31YTile(pointInd), ctx.config.memoryLimitation);
|
RouteSegment rt = ctx.loadRouteSegment(road.getPoint31XTile(pointInd), road.getPoint31YTile(pointInd), ctx.config.memoryLimitation);
|
||||||
it = rt == null ? null : rt.getIterator();
|
it = rt == null ? null : rt.getIterator();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -403,7 +403,7 @@ public class RouteSegmentResult implements StringExternalizable<RouteDataBundle>
|
||||||
}
|
}
|
||||||
|
|
||||||
public void copyPreattachedRoutes(RouteSegmentResult toCopy, int shift) {
|
public void copyPreattachedRoutes(RouteSegmentResult toCopy, int shift) {
|
||||||
if(toCopy.preAttachedRoutes != null) {
|
if (toCopy.preAttachedRoutes != null) {
|
||||||
int l = toCopy.preAttachedRoutes.length - shift;
|
int l = toCopy.preAttachedRoutes.length - shift;
|
||||||
preAttachedRoutes = new RouteSegmentResult[l][];
|
preAttachedRoutes = new RouteSegmentResult[l][];
|
||||||
System.arraycopy(toCopy.preAttachedRoutes, shift, preAttachedRoutes, 0, l);
|
System.arraycopy(toCopy.preAttachedRoutes, shift, preAttachedRoutes, 0, l);
|
||||||
|
@ -412,7 +412,7 @@ public class RouteSegmentResult implements StringExternalizable<RouteDataBundle>
|
||||||
|
|
||||||
public RouteSegmentResult[] getPreAttachedRoutes(int routeInd) {
|
public RouteSegmentResult[] getPreAttachedRoutes(int routeInd) {
|
||||||
int st = Math.abs(routeInd - startPointIndex);
|
int st = Math.abs(routeInd - startPointIndex);
|
||||||
if(preAttachedRoutes != null && st < preAttachedRoutes.length) {
|
if (preAttachedRoutes != null && st < preAttachedRoutes.length) {
|
||||||
return preAttachedRoutes[st];
|
return preAttachedRoutes[st];
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -421,7 +421,7 @@ public class RouteSegmentResult implements StringExternalizable<RouteDataBundle>
|
||||||
public List<RouteSegmentResult> getAttachedRoutes(int routeInd) {
|
public List<RouteSegmentResult> getAttachedRoutes(int routeInd) {
|
||||||
int st = Math.abs(routeInd - startPointIndex);
|
int st = Math.abs(routeInd - startPointIndex);
|
||||||
List<RouteSegmentResult> list = attachedRoutes[st];
|
List<RouteSegmentResult> list = attachedRoutes[st];
|
||||||
if(list == null) {
|
if (list == null) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
|
|
Loading…
Reference in a new issue