--- a/include/db/trip-dao.inc.php +++ b/include/db/trip-dao.inc.php @@ -1,1 +1,132 @@ +<?php +function getTrip($tripID) { + /* def handle_json_GET_triprows(self, params): + """Return a list of rows from the feed file that are related to this + trip.""" + schedule = self.server.schedule + try: + trip = schedule.GetTrip(params.get('trip', None)) + except KeyError: + # if a non-existent trip is searched for, the return nothing + return + route = schedule.GetRoute(trip.route_id) + trip_row = dict(trip.iteritems()) + route_row = dict(route.iteritems()) + return [['trips.txt', trip_row], ['routes.txt', route_row]] + */ +} +function getTripShape() { + /* def handle_json_GET_tripstoptimes(self, params): + schedule = self.server.schedule + try: + trip = schedule.GetTrip(params.get('trip')) + except KeyError: + # if a non-existent trip is searched for, the return nothing + return + time_stops = trip.GetTimeInterpolatedStops() + stops = [] + times = [] + for arr,ts,is_timingpoint in time_stops: + stops.append(StopToTuple(ts.stop)) + times.append(arr) + return [stops, times] + def handle_json_GET_tripshape(self, params): + schedule = self.server.schedule + try: + trip = schedule.GetTrip(params.get('trip')) + except KeyError: + # if a non-existent trip is searched for, the return nothing + return + points = [] + if trip.shape_id: + shape = schedule.GetShape(trip.shape_id) + for (lat, lon, dist) in shape.points: + points.append((lat, lon)) + else: + time_stops = trip.GetTimeStops() + for arr,dep,stop in time_stops: + points.append((stop.stop_lat, stop.stop_lon)) + return points*/ +} +function tripStopTimes($tripID, $after_time, $limit) { + /* rv = [] + + stoptimes = self.GetStopTimes() + # If there are no stoptimes [] is the correct return value but if the start + # or end are missing times there is no correct return value. + if not stoptimes: + return [] + if (stoptimes[0].GetTimeSecs() is None or + stoptimes[-1].GetTimeSecs() is None): + raise ValueError("%s must have time at first and last stop" % (self)) + + cur_timepoint = None + next_timepoint = None + distance_between_timepoints = 0 + distance_traveled_between_timepoints = 0 + + for i, st in enumerate(stoptimes): + if st.GetTimeSecs() != None: + cur_timepoint = st + distance_between_timepoints = 0 + distance_traveled_between_timepoints = 0 + if i + 1 < len(stoptimes): + k = i + 1 + distance_between_timepoints += util.ApproximateDistanceBetweenStops(stoptimes[k-1].stop, stoptimes[k].stop) + while stoptimes[k].GetTimeSecs() == None: + k += 1 + distance_between_timepoints += util.ApproximateDistanceBetweenStops(stoptimes[k-1].stop, stoptimes[k].stop) + next_timepoint = stoptimes[k] + rv.append( (st.GetTimeSecs(), st, True) ) + else: + distance_traveled_between_timepoints += util.ApproximateDistanceBetweenStops(stoptimes[i-1].stop, st.stop) + distance_percent = distance_traveled_between_timepoints / distance_between_timepoints + total_time = next_timepoint.GetTimeSecs() - cur_timepoint.GetTimeSecs() + time_estimate = distance_percent * total_time + cur_timepoint.GetTimeSecs() + rv.append( (int(round(time_estimate)), st, False) ) + + return rv*/ +} + +function tripStartTime($tripID) { + $query = 'SELECT arrival_secs,departure_secs FROM stop_times WHERE trip_id=? ORDER BY stop_sequence LIMIT 1'; + +} + +function viaPoints($tripid, $stopid, $timingPointsOnly = false) +{ + global $APIurl; + $url = $APIurl . "/json/tripstoptimes?trip=" . $tripid; + $json = json_decode(getPage($url)); + debug(print_r($json, true)); + $stops = $json[0]; + $times = $json[1]; + $foundStop = false; + $viaPoints = Array(); + foreach ($stops as $key => $row) { + if ($foundStop) { + if (!$timingPointsOnly || !startsWith($row[5], "Wj")) { + $viaPoints[] = Array( + "id" => $row[0], + "name" => $row[1], + "time" => $times[$key] + ); + } + } + else { + if ($row[0] == $stopid) $foundStop = true; + } + } + return $viaPoints; +} +function viaPointNames($tripid, $stopid) +{ + $points = viaPoints($tripid, $stopid, true); + $pointNames = Array(); + foreach ($points as $point) { + $pointNames[] = $point['name']; + } + return implode(", ", $pointNames); +} +?>