1 package org.matsim.core.router;
12 import java.util.ArrayList;
13 import java.util.List;
27 this.network = network;
28 this.leastCostPathCalculator = leastCostPathCalculator;
39 TravelTimesInvertedNetworkProxy invertedTravelTimes =
new TravelTimesInvertedNetworkProxy(network, l2ltravelTimes);
43 TravelDisutility travelCost = travelTimeFactory.createTravelDisutility(invertedTravelTimes);
45 return new InvertedLeastPathCalculator(network, costFactory.
createPathCalculator(invertedNetwork, travelCost, invertedTravelTimes));
49 public Path calcLeastCostPath(
Node fromNode,
Node toNode,
double starttime,
Person person,
Vehicle vehicle) {
50 Path path = leastCostPathCalculator.
calcLeastCostPath(fromNode, toNode, starttime, person, vehicle);
54 return invertPath(path);
58 private Path invertPath(Path invPath) {
59 int invLinkCount = invPath.links.size();
64 if (invLinkCount == 0) {
66 "The path in the inverted network should consist of at least one link.");
69 List<Link> links =
new ArrayList<>(invLinkCount - 1);
70 for (
int i = 1; i < invLinkCount; i++) {
72 links.add(network.
getLinks().get(linkId));
75 List<Node> nodes =
new ArrayList<>(invLinkCount);
79 for (
Link l : links) {
80 nodes.add(l.getToNode());
83 return new Path(nodes, links, invPath.travelTime, invPath.travelCost);
92 this.linkToLinkTravelTime = l2ltt;
Map< Id< Node >, ? extends Node > getNodes()
TravelTimesInvertedNetworkProxy(Network network, LinkToLinkTravelTime l2ltt)
double getLinkTravelTime(Link invLink, double time, Person person, Vehicle vehicle)
Path calcLeastCostPath(Node fromNode, Node toNode, double starttime, final Person person, final Vehicle vehicle)
static< T > Id< T > create(final long key, final Class< T > type)
Map< Id< Link >, ? extends Link > getLinks()
final LinkToLinkTravelTime linkToLinkTravelTime
double getLinkToLinkTravelTime(Link fromLink, Link toLink, double time, Person person, Vehicle vehicle)
LeastCostPathCalculator createPathCalculator(final Network network, final TravelDisutility travelCosts, final TravelTime travelTimes)