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 | <?php function getTrip($tripID) { global $conn; $query = "Select * from trips where trip_id = '$tripID' join routes on trips.route_id = routes.route_id LIMIT 1"; debug($query,"database"); $result = pg_query($conn, $query); if (!$result) { databaseError(pg_result_error($result)); return Array(); } return pg_fetch_assoc($result); } 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 getTimeInterpolatedTrip($tripID) { /* 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 getTimeInterpolatedTripAtStop($trip_id, $stop_sequence) { foreach(getTimeInterpolatedTrip($tripID) as $tripStop) { if ($tripStop['stop_sequence'] == $stop_sequence) return $tripStop; } return Array(); } function getTripStartTime($tripID) { $query = 'SELECT arrival_secs,departure_secs FROM stop_times WHERE trip_id=? ORDER BY stop_sequence LIMIT 1'; } function viaPointNames($tripid, $stopid) { global $conn; $query = "SELECT stop_name FROM stop_times join stops on stops.stop_id = stop_times.stop_id WHERE stop_times.trip_id = '$tripid' AND stop_sequence > '$stop_sequence' AND substr(stop_code,1,2) != 'Wj' ORDER BY stop_sequence"; debug($query,"database"); $result = pg_query($conn, $query); if (!$result) { databaseError(pg_result_error($result)); return Array(); } $pointNames = pg_fetch_all($result); return r_implode(", ", $pointNames); } ?> |