@Override
public List<Leg> calcRoute(final Facility fromFacility, final Facility toFacility, final double departureTime, final Person person) {
Map<TransitStopFacility, InitialNode> fromStops = this.locateWrappedNearestTransitStops(person, fromFacility.getCoord(), departureTime);
Map<TransitStopFacility, InitialNode> toStops = this.locateWrappedNearestTransitStops(person, toFacility.getCoord(), departureTime);
TransitPassengerRoute p = this.raptorWalker.calcLeastCostPath(fromStops, toStops);
if (p == null) {
return this.createDirectWalkLegList(null, fromFacility.getCoord(), toFacility.getCoord());
}
double directWalkCost = getWalkDisutility(fromFacility.getCoord(), toFacility.getCoord());
double pathCost = p.getTravelCost();
if (directWalkCost * getConfig().getDirectWalkFactor() < pathCost) {
return this.createDirectWalkLegList(null, fromFacility.getCoord(), toFacility.getCoord());
}
return convertPassengerRouteToLegList(departureTime, p, fromFacility.getCoord(), toFacility.getCoord(), person);
}