Search in sources :

Example 1 with ScheduledTransitLeg

use of org.opentripplanner.model.plan.ScheduledTransitLeg in project OpenTripPlanner by opentripplanner.

the class TripTimeShortHelper method getIntermediateTripTimeShortsForLeg.

/**
 * Find trip time shorts for all intermediate stops for a leg.
 */
public static List<TripTimeOnDate> getIntermediateTripTimeShortsForLeg(Leg leg) {
    if (!leg.isScheduledTransitLeg()) {
        return List.of();
    }
    ScheduledTransitLeg transitLeg = leg.asScheduledTransitLeg();
    TripTimes tripTimes = transitLeg.getTripTimes();
    TripPattern tripPattern = transitLeg.getTripPattern();
    Instant serviceDateMidnight = transitLeg.getServiceDateMidnight();
    return IntStream.range(leg.getBoardStopPosInPattern() + 1, leg.getAlightStopPosInPattern()).mapToObj(i -> new TripTimeOnDate(tripTimes, i, tripPattern, serviceDateMidnight)).collect(Collectors.toList());
}
Also used : IntStream(java.util.stream.IntStream) Leg(org.opentripplanner.model.plan.Leg) List(java.util.List) RoutingService(org.opentripplanner.routing.RoutingService) TripPattern(org.opentripplanner.model.TripPattern) TripTimeOnDate(org.opentripplanner.model.TripTimeOnDate) ScheduledTransitLeg(org.opentripplanner.model.plan.ScheduledTransitLeg) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) TripTimes(org.opentripplanner.routing.trippattern.TripTimes) Nullable(javax.annotation.Nullable) ServiceDate(org.opentripplanner.model.calendar.ServiceDate) ScheduledTransitLeg(org.opentripplanner.model.plan.ScheduledTransitLeg) Instant(java.time.Instant) TripTimeOnDate(org.opentripplanner.model.TripTimeOnDate) TripTimes(org.opentripplanner.routing.trippattern.TripTimes) TripPattern(org.opentripplanner.model.TripPattern)

Example 2 with ScheduledTransitLeg

use of org.opentripplanner.model.plan.ScheduledTransitLeg in project OpenTripPlanner by opentripplanner.

the class TripTimeShortHelper method getAllTripTimeShortsForLegsTrip.

/**
 * Find trip time shorts for all stops for the full trip of a leg.
 */
public static List<TripTimeOnDate> getAllTripTimeShortsForLegsTrip(Leg leg) {
    if (!leg.isScheduledTransitLeg()) {
        return List.of();
    }
    ScheduledTransitLeg transitLeg = leg.asScheduledTransitLeg();
    TripTimes tripTimes = transitLeg.getTripTimes();
    TripPattern tripPattern = transitLeg.getTripPattern();
    Instant serviceDateMidnight = transitLeg.getServiceDateMidnight();
    return IntStream.range(0, tripPattern.numberOfStops()).mapToObj(i -> new TripTimeOnDate(tripTimes, i, tripPattern, serviceDateMidnight)).collect(Collectors.toList());
}
Also used : IntStream(java.util.stream.IntStream) Leg(org.opentripplanner.model.plan.Leg) List(java.util.List) RoutingService(org.opentripplanner.routing.RoutingService) TripPattern(org.opentripplanner.model.TripPattern) TripTimeOnDate(org.opentripplanner.model.TripTimeOnDate) ScheduledTransitLeg(org.opentripplanner.model.plan.ScheduledTransitLeg) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) TripTimes(org.opentripplanner.routing.trippattern.TripTimes) Nullable(javax.annotation.Nullable) ServiceDate(org.opentripplanner.model.calendar.ServiceDate) ScheduledTransitLeg(org.opentripplanner.model.plan.ScheduledTransitLeg) Instant(java.time.Instant) TripTimeOnDate(org.opentripplanner.model.TripTimeOnDate) TripTimes(org.opentripplanner.routing.trippattern.TripTimes) TripPattern(org.opentripplanner.model.TripPattern)

Example 3 with ScheduledTransitLeg

use of org.opentripplanner.model.plan.ScheduledTransitLeg in project OpenTripPlanner by opentripplanner.

the class RaptorPathToItineraryMapper method mapTransitLeg.

private Leg mapTransitLeg(Leg prevTransitLeg, TransitPathLeg<TripSchedule> pathLeg, boolean firstLeg) {
    TripSchedule tripSchedule = pathLeg.trip();
    // Find stop positions in pattern where this leg boards and alights.
    // We cannot assume every stop appears only once in a pattern, so we
    // have to match stop and time.
    int boardStopIndexInPattern = tripSchedule.findDepartureStopPosition(pathLeg.fromTime(), pathLeg.fromStop());
    int alightStopIndexInPattern = tripSchedule.findArrivalStopPosition(pathLeg.toTime(), pathLeg.toStop());
    Leg leg;
    if (tripSchedule.isFrequencyBasedTrip()) {
        int frequencyHeadwayInSeconds = tripSchedule.frequencyHeadwayInSeconds();
        leg = new FrequencyTransitLeg(tripSchedule.getOriginalTripTimes(), tripSchedule.getOriginalTripPattern(), boardStopIndexInPattern, alightStopIndexInPattern, createCalendar(pathLeg.fromTime() + frequencyHeadwayInSeconds), createCalendar(pathLeg.toTime()), tripSchedule.getServiceDate(), transitSearchTimeZero.getZone().normalized(), (prevTransitLeg == null ? null : prevTransitLeg.getTransferToNextLeg()), (ConstrainedTransfer) pathLeg.getConstrainedTransferAfterLeg(), toOtpDomainCost(pathLeg.generalizedCost()), frequencyHeadwayInSeconds);
    } else {
        leg = new ScheduledTransitLeg(tripSchedule.getOriginalTripTimes(), tripSchedule.getOriginalTripPattern(), boardStopIndexInPattern, alightStopIndexInPattern, createCalendar(pathLeg.fromTime()), createCalendar(pathLeg.toTime()), tripSchedule.getServiceDate(), transitSearchTimeZero.getZone().normalized(), (prevTransitLeg == null ? null : prevTransitLeg.getTransferToNextLeg()), (ConstrainedTransfer) pathLeg.getConstrainedTransferAfterLeg(), toOtpDomainCost(pathLeg.generalizedCost()));
    }
    AlertToLegMapper.addTransitAlertPatchesToLeg(graph, leg, firstLeg);
    return leg;
}
Also used : ScheduledTransitLeg(org.opentripplanner.model.plan.ScheduledTransitLeg) FrequencyTransitLeg(org.opentripplanner.model.plan.FrequencyTransitLeg) ConstrainedTransfer(org.opentripplanner.model.transfer.ConstrainedTransfer) TripSchedule(org.opentripplanner.routing.algorithm.raptoradapter.transit.TripSchedule) Leg(org.opentripplanner.model.plan.Leg) TransitPathLeg(org.opentripplanner.transit.raptor.api.path.TransitPathLeg) TransferPathLeg(org.opentripplanner.transit.raptor.api.path.TransferPathLeg) StreetLeg(org.opentripplanner.model.plan.StreetLeg) FrequencyTransitLeg(org.opentripplanner.model.plan.FrequencyTransitLeg) AccessPathLeg(org.opentripplanner.transit.raptor.api.path.AccessPathLeg) ScheduledTransitLeg(org.opentripplanner.model.plan.ScheduledTransitLeg) PathLeg(org.opentripplanner.transit.raptor.api.path.PathLeg) EgressPathLeg(org.opentripplanner.transit.raptor.api.path.EgressPathLeg)

Aggregations

Leg (org.opentripplanner.model.plan.Leg)3 ScheduledTransitLeg (org.opentripplanner.model.plan.ScheduledTransitLeg)3 Instant (java.time.Instant)2 List (java.util.List)2 Collectors (java.util.stream.Collectors)2 IntStream (java.util.stream.IntStream)2 Nullable (javax.annotation.Nullable)2 TripPattern (org.opentripplanner.model.TripPattern)2 TripTimeOnDate (org.opentripplanner.model.TripTimeOnDate)2 ServiceDate (org.opentripplanner.model.calendar.ServiceDate)2 RoutingService (org.opentripplanner.routing.RoutingService)2 TripTimes (org.opentripplanner.routing.trippattern.TripTimes)2 FrequencyTransitLeg (org.opentripplanner.model.plan.FrequencyTransitLeg)1 StreetLeg (org.opentripplanner.model.plan.StreetLeg)1 ConstrainedTransfer (org.opentripplanner.model.transfer.ConstrainedTransfer)1 TripSchedule (org.opentripplanner.routing.algorithm.raptoradapter.transit.TripSchedule)1 AccessPathLeg (org.opentripplanner.transit.raptor.api.path.AccessPathLeg)1 EgressPathLeg (org.opentripplanner.transit.raptor.api.path.EgressPathLeg)1 PathLeg (org.opentripplanner.transit.raptor.api.path.PathLeg)1 TransferPathLeg (org.opentripplanner.transit.raptor.api.path.TransferPathLeg)1