function pullDataForSign(&$sign) { $sid = $sign->sid; $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $sid . ".json?key=TEST&date=2015-12-21"); // weekday $sign->stopName = $result['data']['references']['stops'][0]['name']; $stopSchedules = array(); $groupedSchedules = array(); // get weekday schedules createSchedules($result, $stopSchedules, $groupedSchedules, 'wkday'); // get saturday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $sid . ".json?key=TEST&date=2015-12-19"); // saturday createSchedules($result, $stopSchedules, $groupedSchedules, 'sat'); // get sunday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $sid . ".json?key=TEST&date=2015-12-20"); // sunday createSchedules($result, $stopSchedules, $groupedSchedules, 'sun'); // Above we marked certain headsigns as "AMBIGUOUS" // b/c the same text might be used for multiple directions of travel. // Merge 'AMBIGUOUS' schedules with another schedule of the same route (MARTA 12). $deleteCandidates = array(); foreach ($groupedSchedules as $ss) { if ($ss['direction2'] == 'AMBIGUOUS') { foreach ($groupedSchedules as &$ss1) { if ($ss1['name'] == $ss['name'] && $ss1['direction2'] != 'AMBIGUOUS') { array_push($deleteCandidates, $ss); $ss1['wkday'] = array_merge($ss1['wkday'], $ss['wkday']); $ss1['sat'] = array_merge($ss1['sat'], $ss['sat']); $ss1['sun'] = array_merge($ss1['sun'], $ss['sun']); sort($ss1['wkday']); sort($ss1['sat']); sort($ss1['sun']); break; } } } } foreach ($deleteCandidates as $dc) { unset($groupedSchedules[$dc['finalDestination']]); } // // This is to center single schedules on the sheet. // if (count($stopSchedules) == 1) { // array_unshift($stopSchedules, null); // array_push($stopSchedules, null); // } // if (count($groupedSchedules) == 1) { // array_unshift($groupedSchedules, null); // array_push($groupedSchedules, null); // } $sign->stopSchedules = $stopSchedules; $sign->groupedSchedules = $groupedSchedules; }
function printPageForStop($stop) { $agency = $stop[0]; $sid = $stop[1]; $stopId1 = $stop[0]; $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $stopId1 . ".json?key=TEST&date=2015-09-08"); // weekday $stopName = $result['data']['references']['stops'][0]['name']; if (isset($_REQUEST['stopNameOverride']) && $_REQUEST['stopNameOverride'] != "") { $stopName = $_REQUEST['stopNameOverride']; } $routes = $result['data']['references']['routes']; $stopSchedules = array(); $groupedSchedules = array(); // FIRST bus stop // get weekday schedules createSchedules($result, $stopSchedules, 'wkday'); // get saturday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $stopId1 . ".json?key=TEST&date=2015-04-04"); // saturday createSchedules($result, $stopSchedules, 'sat'); // get sunday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $stopId1 . ".json?key=TEST&date=2015-04-05"); // sunday createSchedules($result, $stopSchedules, 'sun'); // SECOND BUS STOP if available $stopId2 = $stop[1]; if ($stopId2 != "") { // get weekday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $stopId2 . ".json?key=TEST&date=2015-09-08"); // weekday createSchedules($result, $stopSchedules, 'wkday'); // get saturday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $stopId2 . ".json?key=TEST&date=2015-04-04"); // saturday createSchedules($result, $stopSchedules, 'sat'); // get sunday schedules $result = getJson("http://atlanta.onebusaway.org/api/api/where/schedule-for-stop/" . $stopId2 . ".json?key=TEST&date=2015-04-05"); // sunday createSchedules($result, $stopSchedules, 'sun'); } $groupedSchedules = createMergedSchedules($stopSchedules); // Above we marked certain headsigns as "AMBIGUOUS" // b/c the same text might be used for multiple directions of travel. // Merge 'AMBIGUOUS' schedules with another schedule of the same route (MARTA 12). $deleteCandidates = array(); foreach ($groupedSchedules as $ss) { if ($ss['direction2'] == 'AMBIGUOUS') { foreach ($groupedSchedules as &$ss1) { if ($ss1['name'] == $ss['name'] && $ss1['direction2'] != 'AMBIGUOUS') { array_push($deleteCandidates, $ss); $ss1['wkday'] = array_merge($ss1['wkday'], $ss['wkday']); $ss1['sat'] = array_merge($ss1['sat'], $ss['sat']); $ss1['sun'] = array_merge($ss1['sun'], $ss['sun']); sort($ss1['wkday']); sort($ss1['sat']); sort($ss1['sun']); break; } } } } foreach ($deleteCandidates as $dc) { unset($groupedSchedules[$dc['finalDestination']]); } // print echo "<div class='page'>"; echo "<div id='fold'></div>"; printPageHeader($stopName); //echo "<div id='pageBody'>"; echo "<div id='mapFold'>"; echo "<img src='img/fakemap.png' style='width:100%; height:75%;' />"; echo "</div>"; echo "<div id='scheduleFold'>"; echo "<div class='buses'>"; //echo "<ul>"; foreach ($stopSchedules as $ss) { //echo "<li>" . $ss['direction2'] . "</li>"; //printRouteInfo($ss); } foreach ($groupedSchedules as $ss) { //echo "<li>" . $ss['direction2'] . "</li>"; printRouteInfo($ss); } //echo "</ul>"; echo "</div>"; echo <<<EOT \t<div class='disclaimer'> \t\t*Trip times are approximate, may change without notice, and may vary with road conditions, events, and holidays. Data provided by MARTA and OneBusAway. \t\t<br /><span class='alt-lang'>*Los horarios son indicativos, pueden cambiar sin aviso previo y cambiar en función de las condiciones de circulación, eventos, y días festivos.</span> \t</div> EOT; echo "</div>"; //echo "</div><!-- pageBody -->"; printPageFooter($sid); echo "</div>"; echo "<div style='clear:both; page-break-after: always;'><" . "/div>"; }