20 package org.matsim.core.router;
22 import java.util.HashSet;
26 import jakarta.inject.*;
28 import com.google.inject.name.Named;
43 implements Provider<RoutingModule> {
62 Map<String, TravelDisutilityFactory> travelDisutilities;
100 synchronized (this.singleModeNetworksCache.getSingleModeNetworksCache()) {
101 filteredNetwork = this.singleModeNetworksCache.getSingleModeNetworksCache().get(mode);
102 invertedNetwork = this.singleModeNetworksCache.getSingleModeNetworksCache().get(mode +
"-inv");
103 if (filteredNetwork == null) {
105 Set<String> modes =
new HashSet<>();
108 filter.
filter(filteredNetwork, modes);
110 invertedNetwork =
new NetworkInverter(filteredNetwork, networkTurnInfoBuilder.createAllowedTurnInfos()).getInvertedNetwork();
112 this.singleModeNetworksCache.getSingleModeNetworksCache().put(mode, filteredNetwork);
113 this.singleModeNetworksCache.getSingleModeNetworksCache().put(mode +
"-inv", invertedNetwork);
117 InvertedLeastPathCalculator leastCostPathCalculator = InvertedLeastPathCalculator.create(
118 leastCostPathCalcFactory, travelDisutilities.get(mode),
119 filteredNetwork, invertedNetwork, travelTimes
134 return new LinkToLinkRoutingModule(mode, populationFactory, filteredNetwork, invertedNetwork, leastCostPathCalculator);
void filter(final Network subNetwork, final Set< String > extractModes)
static RoutingModule createAccessEgressNetworkRouter(String mode, final LeastCostPathCalculator routeAlgo, Scenario scenario, Network filteredNetwork, RoutingModule accessEgressToNetworkRouter, TimeInterpretation timeInterpretation, MultimodalLinkChooser multimodalLinkChooser)
static Network createNetwork()
MultimodalLinkChooser multimodalLinkChooser