--- a/stop.php
+++ b/stop.php
@@ -1,17 +1,35 @@
$sub_stop) {
- // $stopNames[$key] = $sub_stop[1] . ' Stop #' . ($key + 1);
- if (strpos($stop["stop_name"], "Station")) {
- $stopNames[$key] = 'Platform ' . ($key + 1);
- $stopLinks.= '' . $sub_stop["stop_name"] . ' ';
- }
- else {
- $stopNames[$key] = '#' . ($key + 1);
- $stopLinks.= '' . $sub_stop["stop_name"] . ' Stop #' . ($key + 1) . ' ';
- }
- $stopPositions[$key] = Array(
- $sub_stop["stop_lat"],
- $sub_stop["stop_lon"]
- );
- $trips = getStopTrips($sub_stop["stop_id"]);
- $tripSequence = "";
- foreach ($trips as $trip) {
- $tripSequence.= "{$trip['trip_id']},";
- $tripStopNumbers[$trip['trip_id']][] = $key;
- }
- if (!in_array($tripSequence, $fetchedTripSequences)) {
- // only fetch new trip sequences
- $fetchedTripSequences[] = $tripSequence;
- $trips = getStopTripsWithTimes($sub_stop["stop_id"]);
- foreach ($trips as $trip) {
- if (!isset($allStopsTrips[$trip["trip_id"]])) $allStopsTrips[$trip["trip_id"]] = $trip;
- }
- }
- //else {
- // echo "skipped sequence $tripSequence";
- //}
- }
-}
-include_header($stop['stop_name'], "stop");
-/*$serviceAlerts = json_decode(getPage(curPageURL() . "/servicealerts_api.php?filter_class=stop&filter_id=".$stopid) , true);
-
-foreach($serviceAlerts['entities'] as $serviceAlert) {
- echo '
';
-timePlaceSettings();
+ foreach ($stopids as $sub_stopid) {
+ $stops[] = getStop($sub_stopid);
+ }
+ $stop = $stops[0];
+ $stopid = $stops[0]["stop_id"];
+ $stopLinks.= "Individual stop pages:
";
+ foreach ($stops as $key => $sub_stop) {
+
+ $stopNames[$key] = $sub_stop["stop_name"];
+ $stopLinks.= '' . $sub_stop["stop_name"] . ' ';
+
+ $stopPositions[$key] = Array(
+ $sub_stop["stop_lat"],
+ $sub_stop["stop_lon"]
+ );
+ $trips = getStopTrips($sub_stop["stop_id"]);
+ $tripSequence = "";
+ foreach ($trips as $trip) {
+ $tripSequence.= "{$trip['trip_id']},";
+ $tripStopNumbers[$trip['trip_id']][] = $key;
+ }
+ if (!in_array($tripSequence, $fetchedTripSequences)) {
+ // only fetch new trip sequences
+ $fetchedTripSequences[] = $tripSequence;
+ $trips = getStopTripsWithTimes($sub_stop["stop_id"]);
+ foreach ($trips as $trip) {
+ if (!isset($allStopsTrips[$trip["trip_id"]]))
+ $allStopsTrips[$trip["trip_id"]] = $trip;
+ }
+ }
+ //else {
+ // echo "skipped sequence $tripSequence";
+ //}
+ }
+}
+if (sizeof($stops) > 0) {
+ $stopDescParts = explode("
", $stop['stop_desc']);
+ include_header(trim(str_replace("Street: ", "", $stopDescParts[0])), "stop");
+} else {
+ include_header($stop['stop_name'], "stop");
+}
+/* $serviceAlerts = json_decode(getPage(curPageURL() . "/servicealerts_api.php?filter_class=stop&filter_id=".$stopid) , true);
+
+ foreach($serviceAlerts['entities'] as $serviceAlert) {
+ echo ''.$serviceAlert['alert']['description']['translation'].'
';
+ } */
+
+echo '';
echo $stopLinks;
if (sizeof($stops) > 0) {
- trackEvent("View Stops", "View Combined Stops", $stop["stop_name"], $stop["stop_id"]);
- echo staticmap($stopPositions);
-}
-else {
- trackEvent("View Stops", "View Single Stop", $stop["stop_name"], $stop["stop_id"]);
- echo staticmap(Array(
- 0 => Array(
- $stop["stop_lat"],
- $stop["stop_lon"]
- )
- )) ;
-}
-echo '';
+ trackEvent("View Stops", "View Combined Stops", $stop["stop_name"], $stop["stop_id"]);
+ echo staticmap($stopPositions);
+} else {
+ trackEvent("View Stops", "View Single Stop", $stop["stop_name"], $stop["stop_id"]);
+ echo staticmap(Array(
+ 0 => Array(
+ $stop["stop_lat"],
+ $stop["stop_lon"]
+ )
+ ));
+}
+
+timeSettings();
+
+echo '
';
echo '
';
if (sizeof($allStopsTrips) > 0) {
- sktimesort($allStopsTrips,"arrival_time", true);
- $trips = $allStopsTrips;
-}
-else {
- $trips = getStopTripsWithTimes($stopid);
-}
+ sktimesort($allStopsTrips, "arrival_time", true);
+ $trips = $allStopsTrips;
+} else {
+ $trips = getStopTripsWithTimes($stopid, "", "", "", (isset($filterIncludeRoutes) || isset($filterHasStop) ? "75" : ""));
+}
+
+echo "";
+if (sizeof($trips) == 0) {
+ echo "- No trips in the near future.
";
+} else {
+ if ($labs) {
+// ETA calculation
+
+ $tripETA = Array();
+ // max/min delay instead of stddev?
+ $query = $query = "select 'lol', avg(timing_delta), stddev(timing_delta), count(*) from myway_timingdeltas where extract(hour from time) between ".date("H", $earlierTime)." and ".date("H", $laterTime);
+ //select 'lol', stop_id,extract(hour from time), avg(timing_delta), stddev(timing_delta), count(*) from myway_timingdeltas where stop_id = '5501' group by stop_id, extract(hour from time) order by extract(hour from time)
+ $query = $conn->prepare($query);
+ $query->execute();
+ if (!$query) {
+ databaseError($conn->errorInfo());
+ return Array();
+ }
+ $ETAparams = Array();
+ foreach ($query->fetchAll() as $row) {
+ $ETAparams[$row[0]] = Array("avg"=> $row[1], "stddev"=>floor($row[2]),"count"=>$row[3]);
+ };
+ //print_r($ETAparams);
+ foreach ($trips as $trip) {
+ $tripETA[$trip['trip_id']] = date("H:i",strtotime($trip['arrival_time']." - ".(floor($ETAparams['lol']['stddev']))." seconds"))." to ".
+ date("H:i",strtotime($trip['arrival_time']." + ".(floor($ETAparams['lol']['stddev']))." seconds"));
+ }
+ //print_r($tripETA);
+}
+ foreach ($trips as $trip) {
+ if (
+ isset($filterHasStop) && (getTripHasStop($trip['trip_id'], $filterHasStop) == 1)
+ || (isset($filterIncludeRoutes) && in_array($trip["route_short_name"], $filterIncludeRoutes))
+ || (!isset($filterIncludeRoutes) && !isset($filterHasStop))
+ ) {
+ echo '- ';
+
+ $destination = getTripDestination($trip['trip_id']);
+ echo '
' . $trip['route_short_name'] . " towards " . $destination['stop_name'] . "
";
+ $viaPoints = viaPointNames($trip['trip_id'], $trip['stop_sequence']);
+if ($labs) {
+ echo '
ETA: ' . $tripETA[$trip['trip_id']] . '';
+ }
+ if ($viaPoints != "")
+ echo '
Via: ' . $viaPoints . '';
+ if (sizeof($tripStopNumbers) > 0) {
+ echo '
Boarding At: ';
+ if (sizeof($tripStopNumbers[$trip['trip_id']]) == sizeof($stopids)) {
+ echo "All Stops";
+ } else {
+ foreach ($tripStopNumbers[$trip['trip_id']] as $key) {
+ echo $stopNames[$key] . ', ';
+ }
+ }
+ echo '';
+ }
+ echo '
';
+ echo '' . $trip['arrival_time'] . '
';
+ echo ' ';
+ flush();
+ @ob_flush();
+ }
+ }
}
echo '
';
-echo '';
+echo '
';
include_footer();
?>