Travelling all routes thought experiment
--- /dev/null
+++ b/.box
@@ -1,1 +1,5 @@
+shared_writable_dirs:
+ - /labs/tiles
+ - /lib/staticmaplite/cache
+php_extensions: [pgsql, pdo, pdo_pgsql, curl]
--- a/include/db/trip-dao.inc.php
+++ b/include/db/trip-dao.inc.php
@@ -173,6 +173,22 @@
$r = $query->fetch(PDO::FETCH_ASSOC);
return $r['arrival_time'];
}
+function getTripEndTime($tripID)
+{
+ global $conn;
+ $query = "SELECT trip_id,max(arrival_time) as arrival_time from stop_times
+ WHERE stop_times.arrival_time IS NOT NULL and trip_id = :tripID group by trip_id";
+ debug($query, "database");
+ $query = $conn->prepare($query);
+ $query->bindParam(":tripID", $tripID);
+ $query->execute();
+ if (!$query) {
+ databaseError($conn->errorInfo());
+ return Array();
+ }
+ $r = $query->fetch(PDO::FETCH_ASSOC);
+ return $r['arrival_time'];
+}
function getActiveTrips($time)
{
global $conn;
--- a/labs/busstopdensity.tile.php
+++ b/labs/busstopdensity.tile.php
@@ -15,8 +15,8 @@
set_time_limit(120);//2mn
ini_set('memory_limit', '256M');
error_reporting(E_ALL ^ E_DEPRECATED);
- require_once ($labsPath . 'lib/GoogleMapUtility.php');
- require_once ($labsPath . 'lib/HeatMap.php');
+ require_once ('lib/GoogleMapUtility.php');
+ require_once ('lib/HeatMap.php');
//Root folder to store generated tiles
define('TILE_DIR', 'tiles/');
@@ -103,14 +103,13 @@
global $conn;
$nbPOIInsideTile = 0;
+ $result = pg_query($conn, $query);
$spots = Array();
- $query = $conn->prepare($query);
- $query->execute();
- if (!$query) {
- databaseError($conn->errorInfo());
+ if (!$result) {
+ databaseError(pg_result_error($result));
return Array();
}
- foreach( $query->fetchAll() as $row){
+ foreach( pg_fetch_all($result) as $row){
$point = GoogleMapUtility::getOffsetPixelCoords($row['stop_lat'], $row['stop_lon'], $zoom, $X, $Y);
//Count result only in the tile
if( ($point->x > -$offset) && ($point->x < (GoogleMapUtility::TILE_SIZE+$offset)) && ($point->y > -$offset) && ($point->y < (GoogleMapUtility::TILE_SIZE+$offset))){
--- /dev/null
+++ b/labs/travelAllRoutes.php
@@ -1,1 +1,23 @@
+<?php
+include ('../include/common.inc.php');
+ $query = "Select route_short_name,max(route_id) as route_id from routes where route_short_name NOT LIKE '7__' AND route_short_name != '170' AND route_short_name NOT LIKE '9__' group by route_short_name order by route_short_name ;";
+ debug($query, "database");
+ $query = $conn->prepare($query);
+ $query->execute();
+echo "<table><tr><th>Route Number</th><th>First Trip Start</th><th>First Trip End</th><th>Length</th>";
+$total = 0;
+$count = 0;
+foreach($query->fetchAll() as $r) {
+ $trips = getRouteTrips($r['route_id']);
+ $startTime = $trips[0]['arrival_time'];
+ $endTime = getTripEndTime($trips[0]['trip_id']);
+ $timeDiff = strtotime($endTime) - strtotime($startTime);
+ $total += $timeDiff;
+ $count ++;
+ echo "<tr><td>{$r['route_short_name']}</td><td>$startTime</td><td>$endTime</td><td>$timeDiff seconds ie. ". ($timeDiff/60). " minutes</td></tr>";
+}
+echo "</table>";
+echo "Total time: $total seconds ie. " .($total/60/60). " hours<br>";
+echo "$count Routes";
+?>