Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
89e0b7670d
2 changed files with 33 additions and 0 deletions
|
@ -850,6 +850,36 @@ public class RouteResultPreparation {
|
|||
return calculateRawTurnLanes(splitLaneOptions, 0);
|
||||
}
|
||||
|
||||
public static int[] parseLanes(RouteDataObject ro, double dirToNorthEastPi) {
|
||||
int lns = 0;
|
||||
try {
|
||||
if (ro.getOneway() == 0) {
|
||||
// we should get direction to detect forward or backward
|
||||
double cmp = ro.directionRoute(0, true);
|
||||
|
||||
if(Math.abs(MapUtils.alignAngleDifference(dirToNorthEastPi -cmp)) < Math.PI / 2) {
|
||||
if(ro.getValue("lanes:forward") != null) {
|
||||
lns = Integer.parseInt(ro.getValue("lanes:forward"));
|
||||
}
|
||||
} else {
|
||||
if(ro.getValue("lanes:backward") != null) {
|
||||
lns = Integer.parseInt(ro.getValue("lanes:backward"));
|
||||
}
|
||||
}
|
||||
if (lns == 0 && ro.getValue("lanes") != null) {
|
||||
lns = Integer.parseInt(ro.getValue("lanes")) / 2;
|
||||
}
|
||||
} else {
|
||||
lns = Integer.parseInt(ro.getValue("lanes"));
|
||||
}
|
||||
if(lns > 0 ) {
|
||||
return new int[lns];
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static int[] calculateRawTurnLanes(String[] splitLaneOptions, int calcTurnType) {
|
||||
int[] lanes = new int[splitLaneOptions.length];
|
||||
for (int i = 0; i < splitLaneOptions.length; i++) {
|
||||
|
|
|
@ -614,6 +614,9 @@ public class RouteInfoWidgetsFactory {
|
|||
if(ro != null) {
|
||||
float degree = lp == null || !lp.hasBearing() ? 0 : lp.getBearing();
|
||||
loclanes = RouteResultPreparation.parseTurnLanes(ro, degree / 180 * Math.PI);
|
||||
if(loclanes == null) {
|
||||
loclanes = RouteResultPreparation.parseLanes(ro, degree / 180 * Math.PI);
|
||||
}
|
||||
}
|
||||
} else if (rh != null && rh.isRouteCalculated() ) {
|
||||
if (rh.isFollowingMode() && view.getSettings().SHOW_LANES.get()) {
|
||||
|
|
Loading…
Reference in a new issue