temp
This commit is contained in:
@@ -16,7 +16,8 @@ type Stop struct {
|
||||
Transfers []*Transfer `json:"-" csv:"transfers"`
|
||||
}
|
||||
|
||||
func (s *Stop) AddTransfer(transfer *Transfer) {
|
||||
func (s *Stop) AddTransfer(transfer *Transfer, toStop *Stop) {
|
||||
transfer.ToStop = toStop
|
||||
if s.Transfers == nil {
|
||||
s.Transfers = make([]*Transfer, 0)
|
||||
}
|
||||
@@ -24,7 +25,6 @@ func (s *Stop) AddTransfer(transfer *Transfer) {
|
||||
}
|
||||
|
||||
func (s *Stop) AddTrip(trip *Trip) {
|
||||
|
||||
s.Trips[trip.TripId] = trip
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ func (s *Stop) GetTripsAfter(when time.Time) iter.Seq[*TripWithDepartureTime] {
|
||||
for _, trip := range s.Trips {
|
||||
|
||||
for _, stop := range trip.Stops {
|
||||
if stop.StopId == s.StopId && stop.ArrivalTime >= startAfterMidnight {
|
||||
if stop.StopId == s.StopId && stop.ArrivalTime >= startAfterMidnight && stop.PickupType == 0 {
|
||||
|
||||
if !yield(&TripWithDepartureTime{Trip: trip, DepartureTime: stop.DepartureTime}) {
|
||||
return
|
||||
@@ -86,21 +86,44 @@ func (s *Stop) GetUpcomingStops(start *StopTime) iter.Seq[*StopTime] {
|
||||
|
||||
func (s *Stop) GetStopsAfter(when time.Time) iter.Seq2[*StopTime, *StopTime] {
|
||||
startAfterMidnight := AsSecondsAfterMidnight(when)
|
||||
var first *StopTime
|
||||
return func(yield func(start, stop *StopTime) bool) {
|
||||
for _, trip := range s.Trips {
|
||||
found := false
|
||||
found := -1
|
||||
var start *StopTime
|
||||
for _, stop := range trip.Stops {
|
||||
if stop.StopId == s.StopId && stop.ArrivalTime >= startAfterMidnight {
|
||||
found = true
|
||||
found = stop.StopSequence
|
||||
start = stop
|
||||
if first == nil || start.ArrivalTime < first.ArrivalTime {
|
||||
first = start
|
||||
}
|
||||
}
|
||||
if found {
|
||||
if found != -1 && stop.StopSequence > found && stop.PickupType == 0 {
|
||||
if !yield(start, stop) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if first == nil {
|
||||
return
|
||||
}
|
||||
for _, transfer := range s.Transfers {
|
||||
if transfer.FromStopId == s.StopId {
|
||||
|
||||
if !yield(first, &StopTime{
|
||||
Stop: transfer.ToStop,
|
||||
TripId: "transfer",
|
||||
ArrivalTime: startAfterMidnight + SecondsAfterMidnight(transfer.MinTransferTime),
|
||||
DepartureTime: startAfterMidnight + SecondsAfterMidnight(transfer.MinTransferTime),
|
||||
StopId: transfer.ToStopId,
|
||||
}) {
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user