@Override public RoutingModule get() { if (filteredNetwork == null){ TransportModeNetworkFilter filter = new TransportModeNetworkFilter(network); Set<String> modes = new HashSet<>(); modes.add(TransportMode.car); filteredNetwork = NetworkUtils.createNetwork(); filter.filter(filteredNetwork, modes); } TravelDisutilityFactory travelDisutilityFactory = this.travelDisutilityFactory.get(PlansCalcRouteWithTollOrNot.CAR_WITH_PAYED_AREA_TOLL); TravelTime travelTime = travelTimes.get(TransportMode.car); LeastCostPathCalculator routeAlgo = leastCostPathCalculatorFactory.createPathCalculator( filteredNetwork, travelDisutilityFactory.createTravelDisutility(travelTime), travelTime); if ( plansCalcRouteConfigGroup.isInsertingAccessEgressWalk() ) { return DefaultRoutingModules.createAccessEgressNetworkRouter(TransportMode.car, populationFactory, filteredNetwork, routeAlgo, plansCalcRouteConfigGroup); } else { return DefaultRoutingModules.createPureNetworkRouter(TransportMode.car, populationFactory, filteredNetwork, routeAlgo); } // yyyyyy not so great that this differentiation is here; need to push it down a bit (again). kai, feb'2016 } }
plansCalcRouteConfigGroup) ; } else { return DefaultRoutingModules.createPureNetworkRouter(mode, populationFactory, filteredNetwork, routeAlgo);
@Override public List<? extends PlanElement> calcRoute(Facility fromFacility, Facility toFacility, double departureTime, Person person) { List<? extends PlanElement> trip = DefaultRoutingModules.createPureNetworkRouter("car", scenario.getPopulation().getFactory(), scenario.getNetwork(), leastCostAlgoFactory.createPathCalculator(scenario.getNetwork(), disutilityFactory.createTravelDisutility(travelTime), travelTime) ).calcRoute(fromFacility, toFacility, departureTime, person); ((NetworkRoute) TripStructureUtils.getLegs(trip).get(0).getRoute()).setVehicleId(newVehicleId); return trip; }