1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 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); } ?> |