MATSIM
Protected Member Functions | Private Member Functions | Private Attributes | List of all members
org.matsim.pt.router.AbstractTransitRouter Class Reference
Inheritance diagram for org.matsim.pt.router.AbstractTransitRouter:
Inheritance graph
[legend]

Protected Member Functions

 AbstractTransitRouter (TransitRouterConfig transitRouterConfig)
 
 AbstractTransitRouter (TransitRouterConfig config, TransitTravelDisutility transitTravelDisutility)
 
void setTransitTravelDisutility (TransitTravelDisutility transitTravelDisutility)
 
final double getWalkTime (Person person, Coord coord, Coord toCoord)
 
final double getTransferTime (Person person, Coord coord, Coord toCoord)
 
final List< LegcreateDirectWalkLegList (Person person, Coord fromCoord, Coord toCoord)
 
List< LegconvertPassengerRouteToLegList (double departureTime, InternalTransitPassengerRoute p, Coord fromCoord, Coord toCoord, Person person)
 
final TransitRouterConfig getConfig ()
 
final double getWalkDisutility (Person person, Coord coord, Coord toCoord)
 
final TransitTravelDisutility getTravelDisutility ()
 

Private Member Functions

Leg createAccessTransitWalkLeg (Coord fromCoord, RouteSegment routeSegement)
 
Leg createEgressTransitWalkLeg (RouteSegment routeSegement, Coord toCoord)
 
Leg createTransferTransitWalkLeg (RouteSegment routeSegement)
 
Leg createTransitLeg (RouteSegment routeSegment)
 
Leg createTransitWalkLeg (Coord fromCoord, Coord toCoord)
 

Private Attributes

TransitRouterConfig trConfig
 
TransitTravelDisutility travelDisutility
 

Detailed Description

Definition at line 40 of file AbstractTransitRouter.java.

Constructor & Destructor Documentation

◆ AbstractTransitRouter() [1/2]

org.matsim.pt.router.AbstractTransitRouter.AbstractTransitRouter ( TransitRouterConfig  transitRouterConfig)
protected

Definition at line 45 of file AbstractTransitRouter.java.

45  {
46  this.trConfig = transitRouterConfig;
47  }

◆ AbstractTransitRouter() [2/2]

org.matsim.pt.router.AbstractTransitRouter.AbstractTransitRouter ( TransitRouterConfig  config,
TransitTravelDisutility  transitTravelDisutility 
)
protected

Definition at line 49 of file AbstractTransitRouter.java.

49  {
50  this.trConfig = config;
51  this.travelDisutility = transitTravelDisutility;
52  }

Member Function Documentation

◆ setTransitTravelDisutility()

void org.matsim.pt.router.AbstractTransitRouter.setTransitTravelDisutility ( TransitTravelDisutility  transitTravelDisutility)
protected

Definition at line 55 of file AbstractTransitRouter.java.

Referenced by org.matsim.pt.router.TransitRouterImpl.TransitRouterImpl().

55  {
56  this.travelDisutility = transitTravelDisutility;
57  }

◆ getWalkTime()

final double org.matsim.pt.router.AbstractTransitRouter.getWalkTime ( Person  person,
Coord  coord,
Coord  toCoord 
)
protected

◆ getTransferTime()

final double org.matsim.pt.router.AbstractTransitRouter.getTransferTime ( Person  person,
Coord  coord,
Coord  toCoord 
)
protected

◆ createDirectWalkLegList()

final List<Leg> org.matsim.pt.router.AbstractTransitRouter.createDirectWalkLegList ( Person  person,
Coord  fromCoord,
Coord  toCoord 
)
protected

TODO: Replace by FallbackRoutingModule?! - gl-nov'19

Definition at line 72 of file AbstractTransitRouter.java.

References org.matsim.core.population.routes.RouteUtils.createGenericRouteImpl(), org.matsim.core.population.PopulationUtils.createLeg(), org.matsim.pt.router.AbstractTransitRouter.getWalkTime(), org.matsim.api.core.v01.TransportMode.pt, org.matsim.core.router.TripStructureUtils.setRoutingMode(), org.matsim.api.core.v01.population.Route.setTravelTime(), and org.matsim.api.core.v01.TransportMode.walk.

72  {
73  List<Leg> legs = new ArrayList<>();
74  Leg leg = PopulationUtils.createLeg(TransportMode.walk);
75  double walkTime = getWalkTime(person, fromCoord, toCoord);
76  leg.setTravelTime(walkTime);
77  TripStructureUtils.setRoutingMode(leg, TransportMode.pt);
78  Route walkRoute = RouteUtils.createGenericRouteImpl(null, null);
79  walkRoute.setTravelTime(walkTime);
80  leg.setRoute(walkRoute);
81  legs.add(leg);
82  return legs;
83  }
final double getWalkTime(Person person, Coord coord, Coord toCoord)
Here is the call graph for this function:

◆ createAccessTransitWalkLeg()

Leg org.matsim.pt.router.AbstractTransitRouter.createAccessTransitWalkLeg ( Coord  fromCoord,
RouteSegment  routeSegement 
)
private

Definition at line 85 of file AbstractTransitRouter.java.

References org.matsim.core.population.routes.RouteUtils.createGenericRouteImpl(), org.matsim.pt.router.AbstractTransitRouter.createTransitWalkLeg(), org.matsim.pt.router.TransitRouterConfig.getBeelineDistanceFactor(), org.matsim.api.core.v01.BasicLocation.getCoord(), org.matsim.core.network.NetworkUtils.getEuclideanDistance(), org.matsim.facilities.Facility.getLinkId(), org.matsim.api.core.v01.population.Leg.getTravelTime(), org.matsim.core.utils.misc.OptionalTime.seconds, org.matsim.api.core.v01.population.Leg.setRoute(), and org.matsim.api.core.v01.population.Route.setTravelTime().

Referenced by org.matsim.pt.router.AbstractTransitRouter.convertPassengerRouteToLegList().

85  {
86  Leg leg = this.createTransitWalkLeg(fromCoord, routeSegement.fromStop.getCoord());
87  Route walkRoute = RouteUtils.createGenericRouteImpl(null, routeSegement.fromStop.getLinkId());
88  walkRoute.setTravelTime(leg.getTravelTime().seconds());
89  walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(fromCoord, routeSegement.fromStop.getCoord()));
90  leg.setRoute(walkRoute);
91  return leg;
92  }
Leg createTransitWalkLeg(Coord fromCoord, Coord toCoord)
void setTravelTime(final double seconds)
Here is the call graph for this function:

◆ createEgressTransitWalkLeg()

Leg org.matsim.pt.router.AbstractTransitRouter.createEgressTransitWalkLeg ( RouteSegment  routeSegement,
Coord  toCoord 
)
private

Definition at line 94 of file AbstractTransitRouter.java.

References org.matsim.core.population.routes.RouteUtils.createGenericRouteImpl(), org.matsim.pt.router.AbstractTransitRouter.createTransitWalkLeg(), org.matsim.pt.router.TransitRouterConfig.getBeelineDistanceFactor(), org.matsim.api.core.v01.BasicLocation.getCoord(), org.matsim.core.network.NetworkUtils.getEuclideanDistance(), org.matsim.facilities.Facility.getLinkId(), org.matsim.api.core.v01.population.Leg.getTravelTime(), org.matsim.core.utils.misc.OptionalTime.seconds, org.matsim.api.core.v01.population.Leg.setRoute(), and org.matsim.api.core.v01.population.Route.setTravelTime().

Referenced by org.matsim.pt.router.AbstractTransitRouter.convertPassengerRouteToLegList().

94  {
95  Leg leg = this.createTransitWalkLeg(routeSegement.toStop.getCoord(), toCoord);
96  Route walkRoute = RouteUtils.createGenericRouteImpl(routeSegement.toStop.getLinkId(), null);
97  walkRoute.setTravelTime(leg.getTravelTime().seconds());
98  walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(routeSegement.toStop.getCoord(), toCoord));
99  leg.setRoute(walkRoute);
100  return leg;
101  }
Leg createTransitWalkLeg(Coord fromCoord, Coord toCoord)
void setTravelTime(final double seconds)
Here is the call graph for this function:

◆ createTransferTransitWalkLeg()

Leg org.matsim.pt.router.AbstractTransitRouter.createTransferTransitWalkLeg ( RouteSegment  routeSegement)
private

Definition at line 103 of file AbstractTransitRouter.java.

References org.matsim.core.population.routes.RouteUtils.createGenericRouteImpl(), org.matsim.pt.router.AbstractTransitRouter.createTransitWalkLeg(), org.matsim.pt.router.TransitRouterConfig.getBeelineDistanceFactor(), org.matsim.api.core.v01.BasicLocation.getCoord(), org.matsim.core.network.NetworkUtils.getEuclideanDistance(), org.matsim.pt.router.RouteSegment.getFromStop(), org.matsim.facilities.Facility.getLinkId(), org.matsim.pt.router.RouteSegment.getToStop(), org.matsim.pt.router.AbstractTransitRouter.getTransferTime(), org.matsim.api.core.v01.population.Leg.setRoute(), and org.matsim.api.core.v01.population.Leg.setTravelTime().

Referenced by org.matsim.pt.router.AbstractTransitRouter.convertPassengerRouteToLegList().

103  {
104  Leg leg = this.createTransitWalkLeg(routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord());
105  Route walkRoute = RouteUtils.createGenericRouteImpl(routeSegement.getFromStop().getLinkId(), routeSegement.getToStop().getLinkId());
106 // walkRoute.setTravelTime(leg.getTravelTime() );
107  // transit walk leg should include additional transfer time; Amit, Aug'17
108  leg.setTravelTime( getTransferTime(null, routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()) );
109  walkRoute.setTravelTime(getTransferTime(null, routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()) );
110  walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(routeSegement.fromStop.getCoord(), routeSegement.toStop.getCoord()));
111  leg.setRoute(walkRoute);
112 
113  return leg;
114  }
final double getTransferTime(Person person, Coord coord, Coord toCoord)
Leg createTransitWalkLeg(Coord fromCoord, Coord toCoord)
void setTravelTime(final double seconds)
Here is the call graph for this function:

◆ convertPassengerRouteToLegList()

List<Leg> org.matsim.pt.router.AbstractTransitRouter.convertPassengerRouteToLegList ( double  departureTime,
InternalTransitPassengerRoute  p,
Coord  fromCoord,
Coord  toCoord,
Person  person 
)
protected

Definition at line 116 of file AbstractTransitRouter.java.

References org.matsim.pt.router.AbstractTransitRouter.createAccessTransitWalkLeg(), org.matsim.pt.router.AbstractTransitRouter.createEgressTransitWalkLeg(), org.matsim.pt.router.AbstractTransitRouter.createTransferTransitWalkLeg(), org.matsim.pt.router.AbstractTransitRouter.createTransitLeg(), and org.matsim.pt.router.InternalTransitPassengerRoute.getRoute().

Referenced by org.matsim.pt.router.TransitRouterImpl.calcRoute().

116  {
117  // convert the route into a sequence of legs
118  List<Leg> legs = new ArrayList<>();
119 
120  // access leg
121  Leg accessLeg;
122  // check if first leg extends walking distance
123  if (p.getRoute().get(0).getRouteTaken() == null) {
124  // route starts with transfer - extend initial walk to that stop
125  //TODO: what if first leg extends the walking distance to more than first routeSegment i.e., (accessLeg, transfer, transfer ...). Amit Jan'18
126 // accessLeg = createTransitWalkLeg(fromCoord, p.getRoute().get(0).getToStop().getCoord());
127  accessLeg = createAccessTransitWalkLeg(fromCoord, p.getRoute().get(0));
128  p.getRoute().remove(0);
129  } else {
130  // do not extend it - add a regular walk leg
131  //
132 // accessLeg = createTransitWalkLeg(fromCoord, p.getRoute().get(0).getFromStop().getCoord());
133  accessLeg = createAccessTransitWalkLeg(fromCoord, p.getRoute().get(0));
134  }
135 
136  // egress leg
137  Leg egressLeg;
138  // check if first leg extends walking distance
139  if (p.getRoute().get(p.getRoute().size() - 1).getRouteTaken() == null) {
140  // route starts with transfer - extend initial walk to that stop
141 // egressLeg = createTransitWalkLeg(p.getRoute().get(p.getRoute().size() - 1).getFromStop().getCoord(), toCoord);
142  egressLeg = createEgressTransitWalkLeg(p.getRoute().get(p.getRoute().size() - 1), toCoord);
143  p.getRoute().remove(p.getRoute().size() - 1);
144  } else {
145  // do not extend it - add a regular walk leg
146  // access leg
147 // egressLeg = createTransitWalkLeg(p.getRoute().get(p.getRoute().size() - 1).getToStop().getCoord(), toCoord);
148  egressLeg = createEgressTransitWalkLeg(p.getRoute().get(p.getRoute().size() - 1), toCoord);
149  }
150 
151 
152  // add very first leg
153  legs.add(accessLeg);
154 
155  // route segments are now in pt-walk-pt sequence
156  for (RouteSegment routeSegement : p.getRoute()) {
157  if (routeSegement.getRouteTaken() == null) {// transfer
158  if (!routeSegement.fromStop.equals(routeSegement.toStop)) { // same to/from stop => no transfer. Amit Feb'18
159  legs.add(createTransferTransitWalkLeg(routeSegement));
160  }
161  } else {
162  // pt leg
163  legs.add(createTransitLeg(routeSegement));
164  }
165  }
166 
167  // add last leg
168  legs.add(egressLeg);
169 
170  return legs;
171  }
Leg createEgressTransitWalkLeg(RouteSegment routeSegement, Coord toCoord)
Leg createTransferTransitWalkLeg(RouteSegment routeSegement)
Leg createAccessTransitWalkLeg(Coord fromCoord, RouteSegment routeSegement)
Here is the call graph for this function:

◆ createTransitLeg()

Leg org.matsim.pt.router.AbstractTransitRouter.createTransitLeg ( RouteSegment  routeSegment)
private

Definition at line 173 of file AbstractTransitRouter.java.

References org.matsim.core.population.PopulationUtils.createLeg(), org.matsim.pt.router.RouteSegment.getFromStop(), org.matsim.api.core.v01.Identifiable< T >.getId(), org.matsim.pt.router.RouteSegment.getLineTaken(), org.matsim.facilities.Facility.getLinkId(), org.matsim.pt.router.RouteSegment.getRouteTaken(), org.matsim.pt.router.RouteSegment.getToStop(), org.matsim.pt.router.RouteSegment.getTravelTime(), org.matsim.api.core.v01.TransportMode.pt, org.matsim.api.core.v01.population.Leg.setRoute(), org.matsim.api.core.v01.population.Route.setTravelTime(), and org.matsim.api.core.v01.population.Leg.setTravelTime().

Referenced by org.matsim.pt.router.AbstractTransitRouter.convertPassengerRouteToLegList().

173  {
174  Leg leg = PopulationUtils.createLeg(TransportMode.pt);
175 
176  TransitPassengerRoute ptRoute = new DefaultTransitPassengerRoute( //
177  routeSegment.getFromStop().getLinkId(), routeSegment.getToStop().getLinkId(), //
178  routeSegment.getFromStop().getId(), routeSegment.getToStop().getId(), //
179  routeSegment.getLineTaken(), routeSegment.getRouteTaken()
180  );
181 
182  ptRoute.setTravelTime(routeSegment.travelTime);
183  leg.setRoute(ptRoute);
184 
185  leg.setTravelTime(routeSegment.getTravelTime());
186  return leg;
187  }
Here is the call graph for this function:

◆ createTransitWalkLeg()

Leg org.matsim.pt.router.AbstractTransitRouter.createTransitWalkLeg ( Coord  fromCoord,
Coord  toCoord 
)
private

Definition at line 189 of file AbstractTransitRouter.java.

References org.matsim.core.population.PopulationUtils.createLeg(), org.matsim.pt.router.AbstractTransitRouter.getWalkTime(), org.matsim.api.core.v01.population.Leg.setTravelTime(), and org.matsim.api.core.v01.TransportMode.walk.

Referenced by org.matsim.pt.router.AbstractTransitRouter.createAccessTransitWalkLeg(), org.matsim.pt.router.AbstractTransitRouter.createEgressTransitWalkLeg(), and org.matsim.pt.router.AbstractTransitRouter.createTransferTransitWalkLeg().

189  {
190  Leg leg = PopulationUtils.createLeg(TransportMode.walk);
191  double walkTime = getWalkTime(null, fromCoord, toCoord);
192  leg.setTravelTime(walkTime);
193  return leg;
194  }
final double getWalkTime(Person person, Coord coord, Coord toCoord)
Here is the call graph for this function:

◆ getConfig()

final TransitRouterConfig org.matsim.pt.router.AbstractTransitRouter.getConfig ( )
protected

◆ getWalkDisutility()

final double org.matsim.pt.router.AbstractTransitRouter.getWalkDisutility ( Person  person,
Coord  coord,
Coord  toCoord 
)
protected

◆ getTravelDisutility()

final TransitTravelDisutility org.matsim.pt.router.AbstractTransitRouter.getTravelDisutility ( )
protected

Member Data Documentation

◆ trConfig

TransitRouterConfig org.matsim.pt.router.AbstractTransitRouter.trConfig
private

◆ travelDisutility

TransitTravelDisutility org.matsim.pt.router.AbstractTransitRouter.travelDisutility
private

The documentation for this class was generated from the following file: