--- a/labs/networkstats.php +++ b/labs/networkstats.php @@ -1,1 +1,148 @@ +<?php +include ('../include/common.inc.php'); +include_header("Network/Route Statistics", "networkstats") +?> +<script type="text/javascript" src="js/flotr/lib/prototype-1.6.0.2.js"></script> + <!--[if IE]> + + <script type="text/javascript" src="js/flotr/lib/excanvas.js"></script> + + <script type="text/javascript" src="js/flotr/lib/base64.js"></script> + + <![endif]--> + + <script type="text/javascript" src="js/flotr/lib/canvas2image.js"></script> + + <script type="text/javascript" src="js/flotr/lib/canvastext.js"></script> + + <script type="text/javascript" src="js/flotr/flotr.debug-0.2.0-alpha_radar1.js"></script> + <form method="get" action="networkstats.php"> + <select id="routeid" name="routeid"> + <?php + foreach (getRoutes() as $route) { + echo "<option value=\"{$route['route_id']}\">{$route['route_short_name']} {$route['route_long_name']}</option>"; + } + ?> + </select> + <input type="submit" value="View"/> + </form> + +<?php +// middle of graph = 6am +$adjustFactor = 0; +$routeid = ($_REQUEST['routeid'] ? filter_var($_REQUEST['routeid'], FILTER_SANITIZE_NUMBER_INT) : 0); +$route = getRoute($routeid); +echo "<h1>{$route['route_short_name']} {$route['route_long_name']}</h1>"; +foreach (getRouteTrips($routeid) as $key => $trip) { + $dLabel[$key] = $trip['arrival_time']; + if ($key == 0) { + $time = strtotime($trip['arrival_time']); + $adjustFactor = (date("G", $time) * 3600); + } + $tripStops = viaPoints($trip['trip_id']); + foreach ($tripStops as $i => $stop) { + if ($key == 0) { + $dTicks[$i] = $stop['stop_name']; + } + $time = strtotime($stop['arrival_time']); + $d[$key][$i] = (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time) - $adjustFactor; + + } +} + +?> +<div id="container" style="width:100%;height:900px;"></div> +<script type="text/javascript"> + + /** + + * Wait till dom's finished loading. + + */ + + document.observe('dom:loaded', function(){ + + /** + + * Fill series d1 and d2. + + */ +<?php +foreach ($d as $key => $dataseries) { + + echo "var d$key =["; + foreach ($dataseries as $i => $datapoint) { + echo "[$i, $datapoint],"; + } + echo "];\n"; +} + +?> + + + + var f = Flotr.draw($('container'), + + [ + <?php +foreach ($d as $key => $dataseries) { + + echo '{data:d'.$key.", label:'{$dLabel[$key]}'".', radar:{fill:false}},'."\n"; + +} + +?> + ], + + {defaultType: 'radar', + + radarChartMode: true, + + HtmlText: false, + + fontSize: 9, + + xaxis:{ + + ticks: [ + <?php +foreach ($dTicks as $key => $tickName) { + echo '['.$key.', "'.$tickName.'"],'; +} + +?> + + ]}, + + mouse:{ // Setup point tracking + + track: true, + + lineColor: 'black', + + relative: true, + + sensibility: 70, + + trackFormatter: function(obj){ + var d = new Date(); + d.setMinutes(0); + d.setHours(0); +d.setTime(d.getTime() + Math.floor(obj.radarData*1000) + <?php echo $adjustFactor*1000 ?>); +return d.getHours() +':'+ (d.getMinutes().toString().length == 1 ? '0'+ d.getMinutes(): d.getMinutes()); +}}}); + + }); + + </script> + + </div> + + + +<?php +include_footer() +?> + +