ajout: Ajout du mode de déplacement en vélo
This commit is contained in:
parent
369b12ee76
commit
0b08b70cb9
1 changed files with 65 additions and 1 deletions
|
|
@ -110,6 +110,70 @@ public class ArcInspectorFactory {
|
|||
}
|
||||
};
|
||||
|
||||
private static class BicyleByTime implements ArcInspector {
|
||||
static int maxBicycleSpeed = 20;
|
||||
|
||||
@Override
|
||||
public boolean isAllowed(Arc arc) {
|
||||
return arc.getRoadInformation().getAccessRestrictions().isAllowedForAny(
|
||||
AccessMode.BICYCLE,
|
||||
EnumSet.complementOf(EnumSet.of(AccessRestriction.FORBIDDEN,
|
||||
AccessRestriction.PRIVATE)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCost(Arc arc) {
|
||||
return arc.getTravelTime(Math.min(maxBicycleSpeed, arc.getRoadInformation().getMaximumSpeed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaximumSpeed() {
|
||||
return 20;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mode getMode() {
|
||||
return Mode.TIME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Le plus rapide, chemin accessible en vélo uniquement";
|
||||
}
|
||||
}
|
||||
|
||||
private static class BicyleByLength implements ArcInspector {
|
||||
static int maxBicycleSpeed = 20;
|
||||
|
||||
@Override
|
||||
public boolean isAllowed(Arc arc) {
|
||||
return arc.getRoadInformation().getAccessRestrictions().isAllowedForAny(
|
||||
AccessMode.BICYCLE,
|
||||
EnumSet.complementOf(EnumSet.of(AccessRestriction.FORBIDDEN,
|
||||
AccessRestriction.PRIVATE)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCost(Arc arc) {
|
||||
return arc.getLength();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaximumSpeed() {
|
||||
return 20;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mode getMode() {
|
||||
return Mode.LENGTH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Le plus court, chemin accessible en vélo uniquement";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return List of all arc filters in this factory.
|
||||
*/
|
||||
|
|
@ -118,7 +182,7 @@ public class ArcInspectorFactory {
|
|||
// to get an understandable output!):
|
||||
return Arrays.asList(new NoFilterByLengthArcInspector(),
|
||||
new OnlyCarsByLengthArcInspector(), new OnlyCarsByTimeArcInspector(),
|
||||
new OnlyPedestrianByTime());
|
||||
new OnlyPedestrianByTime(), new BicyleByLength(), new BicyleByTime());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue