--- a/trip.php
+++ b/trip.php
@@ -1,56 +1,140 @@
0)) $tripid = $trips[0][1];
+
+/*
+ * Copyright 2010,2011 Alexander Sadleir
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+include ('include/common.inc.php');
+$routetrips = Array();
+if (isset($routeid) && !isset($tripid)) {
+ $trip = getRouteNextTrip($routeid,$directionid);
+
+ if (!($trip)) {
+ $trip = getRouteFirstTrip($routeid,$directionid);
+ }
+ $tripid = $trip['trip_id'];
+} else {
+ $trip = getTrip($tripid);
+ $routeid = $trip['route_id'];
}
-$url = $APIurl . "/json/triprows?trip=" . $tripid;
-$trips = array_flatten(json_decode(getPage($url)));
-debug(print_r($trips, true));
-include_header("Stops on " . $trips[1]->route_short_name . ' ' . $trips[1]->route_long_name, "trip");
-if (isMetricsOn()) {
- // Create a new Instance of the tracker
- $owa = new owa_php();
- // Set the ID of the site being tracked
- $owa->setSiteId($owaSiteID);
- // Create a new event object
- $event = $owa->makeEvent();
- // Set the Event Type, in this case a "video_play"
- $event->setEventType('view_trip');
- // Set a property
- $event->set('trip_id', $tripid);
- $event->set('route_id', $routeid);
- $event->set('stop_id', $stopid);
- // Track the event
- $owa->trackEvent($event);
+$directionid = $trip['direction_id'];
+$service_period = strtolower($trip["service_id"]);
+$destination = getTripDestination($trip['trip_id']);
+include_header("Route " . $trip['route_id'] . ' to ' . $destination['stop_name'], "trip");
+trackEvent("Route/Trip View", "View Route", $trip['route_id'] . ' ' . $destination['stop_name'], $routeid);
+echo '
';
+echo '
View Original Timetable/Map ';
+echo '
View Trip in Google Earth ';
+echo '
View Route in Google Earth';
+echo '
Via:
' . viaPointNames($tripid) . '';
+echo '
Other Trips:
';
+$routeTrips = getRouteTrips($routeid, $trip['direction_id'], $service_period);
+foreach ($routeTrips as $key => $othertrip) {
+ // if ($othertrip['trip_id'] != $tripid) {
+ echo '
' . str_replace(" ", ":00", str_replace(":00", " ", $othertrip['arrival_time'])) . ' ';
+ // } else {
+ // skip this trip but look forward/back
+ if ($key - 1 > 0)
+ $prevTrip = $routeTrips[$key - 1]['trip_id'];
+ if ($key + 1 < sizeof($routeTrips))
+ $nextTrip = $routeTrips[$key + 1]['trip_id'];
+ // }
}
-timePlaceSettings();
+flush();
+@ob_flush();
+echo '
Other directions/timing periods:
';
+$otherDir = 0;
+
+ foreach (getRouteHeadsigns($routeid) as $headsign) {
+ if ($headsign['direction_id'] != $directionid || strtolower($headsign['service_id']) != $service_period) {
+
+ echo '
Starting at ' . $headsign['stop_name'] . ' (' . $headsign['service_id'] . ') ';
+ $otherDir++;
+ }
+ }
+
+if ($otherDir == 0) {
+ echo "None";
+}
+echo '
';
+flush();
+@ob_flush();
+echo "";
echo '
';
-$url = $APIurl . "/json/tripstoptimes?trip=" . $tripid;
-$json = json_decode(getPage($url));
-debug(print_r($json, true));
-$stops = $json[0];
-$times = $json[1];
-foreach ($stops as $key => $row) {
- echo '- ';
- echo '';
- echo '
' . midnight_seconds_to_time($times[$key]) . '
';
- echo ' ';
+$stopsGrouped = Array();
+$tripStopTimes = getTripStopTimes($tripid);
+echo '- ' . $tripStopTimes[0]['arrival_time'] . ' to ' . $tripStopTimes[sizeof($tripStopTimes) - 1]['arrival_time'] . ' towards ' . $destination['stop_name'] . ' (' . ucwords(strtolower($tripStopTimes[0]['service_id'])) . ')
';
+foreach ($tripStopTimes as $key => $tripStopTime) {
+ if ($key + 1 >= sizeof($tripStopTimes) || stopCompare($tripStopTimes[$key]["stop_name"]) != stopCompare($tripStopTimes[$key + 1]["stop_name"])) {
+ echo '- ';
+
+ if (sizeof($stopsGrouped) > 0) {
+ // print and empty grouped stops
+ // subsequent duplicates
+ $stopsGrouped["stop_ids"][] = $tripStopTime['stop_id'];
+ $stopsGrouped["endTime"] = $tripStopTime['arrival_time'];
+ echo '';
+ echo '
' . $stopsGrouped['startTime'] . ' to ' . $stopsGrouped['endTime'];
+ if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
+ echo '
' . distance($tripStopTime['stop_lat'], $tripStopTime['stop_lon'], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away';
+ }
+ echo '
';
+ echo stopGroupTitle($tripStopTime['stop_name'], $tripStopTime['stop_desc']) . '
' . sizeof($stopsGrouped["stop_ids"]) . ' stops';
+
+ echo ' ';
+ flush();
+ @ob_flush();
+ $stopsGrouped = Array();
+ } else {
+ // just a normal stop
+ echo '';
+ echo '' . $tripStopTime['arrival_time'];
+ if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
+ echo '
' . distance($tripStopTime['stop_lat'], $tripStopTime['stop_lon'], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away';
+ }
+ echo '
';
+ echo $tripStopTime['stop_name'];
+ echo '';
+ flush();
+ @ob_flush();
+ }
+ } else {
+ // this is a duplicated line item
+ if ($key - 1 <= 0 || stopCompare($tripStopTimes[$key]['stop_name']) != stopCompare($tripStopTimes[$key - 1]['stop_name'])) {
+ // first duplicate
+ $stopsGrouped = Array(
+ "startTime" => $tripStopTime['arrival_time'],
+ "stop_ids" => Array(
+ $tripStopTime['stop_id']
+ )
+ );
+ } else {
+ // subsequent duplicates
+ $stopsGrouped["stop_ids"][] = $tripStopTime['stop_id'];
+ $stopsGrouped["endTime"] = $tripStopTime['arrival_time'];
+ }
+ }
}
echo '
';
+echo '
';
include_footer();
?>