@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);
}
}
}