From: Maxious Date: Tue, 11 Oct 2011 12:14:52 +0000 Subject: Account for bus stations in myway timeliness calculate X-Git-Url: https://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=2fe8b7fdc62fb76b530905d04c8e416421669368 --- Account for bus stations in myway timeliness calculate --- --- a/include/db/route-dao.inc.php +++ b/include/db/route-dao.inc.php @@ -31,7 +31,7 @@ } function getRoutesByShortName($routeShortName) { global $conn; - $query = "Select * from routes where route_short_name = :routeShortName"; + $query = "Select distinct route_id, route_short_name from routes where route_short_name = :routeShortName"; debug($query, "database"); $query = $conn->prepare($query); $query->bindParam(":routeShortName", $routeShortName); @@ -42,6 +42,22 @@ } return $query->fetchAll(); } + +function getRouteHeadsigns($routeID) { + global $conn; + $query = "select distinct trip_headsign,direction_id from routes join trips on trips.route_id = routes.route_id +join stop_times on stop_times.trip_id = trips.trip_id "; + debug($query, "database"); + $query = $conn->prepare($query); + $query->bindParam(":routeID", $routeID); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + return Array(); + } +return $query->fetchAll(); +} + function getRouteByFullName($routeFullName) { global $conn; $query = "Select * from routes where route_short_name||route_long_name = :routeFullName LIMIT 1"; --- a/include/db/trip-dao.inc.php +++ b/include/db/trip-dao.inc.php @@ -56,7 +56,7 @@ function getTripStopTimes($tripID) { global $conn; - $query = "SELECT stop_times.trip_id,arrival_time,stop_times.stop_id,stop_lat,stop_lon,stop_name,stop_code, + $query = "SELECT stop_times.trip_id,trip_headsign,arrival_time,stop_times.stop_id,stop_lat,stop_lon,stop_name,stop_code, stop_sequence,service_id,trips.route_id,route_short_name,route_long_name FROM stop_times join trips on trips.trip_id = stop_times.trip_id @@ -83,127 +83,6 @@ } return Array(); } - -/* DEPRECIATED - function getTimeInterpolatedTrip($tripID, $range = "") { - global $conn; - $query = "SELECT stop_times.trip_id,arrival_time,stop_times.stop_id,stop_lat,stop_lon,stop_name,stop_code, - stop_sequence,service_id,trips.route_id,route_short_name,route_long_name - FROM stop_times - join trips on trips.trip_id = stop_times.trip_id - join routes on trips.route_id = routes.route_id - join stops on stops.stop_id = stop_times.stop_id - WHERE trips.trip_id = :tripID $range ORDER BY stop_sequence"; - debug($query, "database"); - $query = $conn->prepare($query); - $query->bindParam(":tripID", $tripID); - $query->execute(); - if (!$query) { - databaseError($conn->errorInfo()); - return Array(); - } - $stopTimes = $query->fetchAll(); - $cur_timepoint = Array(); - $next_timepoint = Array(); - $distance_between_timepoints = 0.0; - $distance_traveled_between_timepoints = 0.0; - $rv = Array(); - foreach ($stopTimes as $i => $stopTime) { - if ($stopTime['arrival_time'] != "") { - // is timepoint - $cur_timepoint = $stopTime; - $distance_between_timepoints = 0.0; - $distance_traveled_between_timepoints = 0.0; - if ($i + 1 < sizeof($stopTimes)) { - $k = $i + 1; - $distance_between_timepoints += distance($stopTimes[$k - 1]["stop_lat"], $stopTimes[$k - 1]["stop_lon"], $stopTimes[$k]["stop_lat"], $stopTimes[$k]["stop_lon"]); - while ($stopTimes[$k]["arrival_time"] == "" && $k + 1 < sizeof($stopTimes)) { - $k += 1; - // echo "k".$k; - $distance_between_timepoints += distance($stopTimes[$k - 1]["stop_lat"], $stopTimes[$k - 1]["stop_lon"], $stopTimes[$k]["stop_lat"], $stopTimes[$k]["stop_lon"]); - } - $next_timepoint = $stopTimes[$k]; - } - $rv[] = $stopTime; - } else { - // is untimed point - // echo "i".$i; - $distance_traveled_between_timepoints += distance($stopTimes[$i - 1]["stop_lat"], $stopTimes[$i - 1]["stop_lon"], $stopTimes[$i]["stop_lat"], $stopTimes[$i]["stop_lon"]); - // echo "$distance_traveled_between_timepoints / $distance_between_timepoints
"; - $distance_percent = $distance_traveled_between_timepoints / $distance_between_timepoints; - if ($next_timepoint["arrival_time"] != "") { - $total_time = strtotime($next_timepoint["arrival_time"]) - strtotime($cur_timepoint["arrival_time"]); - // echo strtotime($next_timepoint["arrival_time"])." - ".strtotime($cur_timepoint["arrival_time"])."
"; - $time_estimate = ($distance_percent * $total_time) + strtotime($cur_timepoint["arrival_time"]); - $stopTime["arrival_time"] = date("H:i:s", $time_estimate); - } else { - $stopTime["arrival_time"] = $cur_timepoint["arrival_time"]; - } - $rv[] = $stopTime; - } - } - // var_dump($rv); - return $rv; - } - - function getTripPreviousTimePoint($tripID, $stop_sequence) { - global $conn; - $query = " SELECT trip_id,stop_id, - stop_sequence - FROM stop_times - WHERE trip_id = :tripID and stop_sequence < :stop_sequence - and stop_times.arrival_time IS NOT NULL ORDER BY stop_sequence DESC LIMIT 1"; - debug($query, "database"); - $query = $conn->prepare($query); - $query->bindParam(":tripID", $tripID); - $query->bindParam(":stop_sequence", $stop_sequence); - $query->execute(); - if (!$query) { - databaseError($conn->errorInfo()); - return Array(); - } - return $query->fetch(PDO :: FETCH_ASSOC); - } - - function getTripNextTimePoint($tripID, $stop_sequence) { - global $conn; - $query = " SELECT trip_id,stop_id, - stop_sequence - FROM stop_times - WHERE trip_id = :tripID and stop_sequence > :stop_sequence - and stop_times.arrival_time IS NOT NULL ORDER BY stop_sequence LIMIT 1"; - debug($query, "database"); - $query = $conn->prepare($query); - $query->bindParam(":tripID", $tripID); - $query->bindParam(":stop_sequence", $stop_sequence); - $query->execute(); - if (!$query) { - databaseError($conn->errorInfo()); - return Array(); - } - return $query->fetch(PDO :: FETCH_ASSOC); - } - - - - function getTimeInterpolatedTripAtStop($tripID, $stop_sequence) { - global $conn; - // limit interpolation to between nearest actual points. - $prevTimePoint = getTripPreviousTimePoint($tripID, $stop_sequence); - $nextTimePoint = getTripNextTimePoint($tripID, $stop_sequence); - // echo " prev {$lowestDelta['stop_sequence']} next {$nextTimePoint['stop_sequence']} "; - $range = ""; - if ($prevTimePoint != "") - $range .= " AND stop_sequence >= '{$prevTimePoint['stop_sequence']}'"; - if ($nextTimePoint != "") - $range .= " AND stop_sequence <= '{$nextTimePoint['stop_sequence']}'"; - foreach (getTimeInterpolatedTrip($tripID, $range) as $tripStop) { - if ($tripStop['stop_sequence'] == $stop_sequence) - return $tripStop; - } - return Array(); - } */ - function getTripStartTime($tripID) { global $conn; $query = "Select * from stop_times --- a/myway/myway_timeliness_calculate.php +++ b/myway/myway_timeliness_calculate.php @@ -50,10 +50,6 @@ //var_dump($obsv); echo "

Observation {$obsv['observation_id']}:

{$obsv['myway_stop']} @ {$obsv['time']} on {$obsv['myway_route']}
"; - if ($obsv["stop_id"] == "") { - echo "error, stop '{$obsv['myway_stop']}' unknown"; - continue; - } // convert timestamp into time of day and date // timezones from http://www.postgresql.org/docs/8.0/static/datetime-keywords.html $time = date("H:i:s", strtotime($obsv['time'])); @@ -61,7 +57,12 @@ $search_time = date("H:i:s", strtotime($obsv['time']) - (30 * 60)); // 30 minutes margin $date = date("c", strtotime($obsv['time'])); $timing_period = service_period(strtotime($date)); + if (isset($obsv["stop_id"]) && $obsv["stop_id"] != "" ) { $potentialStops = Array(getStop($obsv["stop_id"])); + } else { + echo "Potential stops are a bus station
"; + $potentialStops = getStops("", trim(str_replace(Array("Arrival","Arrivals","Arrive Platform 3 Set down only.","Arrive","Set Down Only"), "", $obsv["myway_stop"]))); + } //:get myway_stops records //:search by starts with stopcode and starts with street if street is not null //no result, skip and display error @@ -108,7 +109,7 @@ "timeDiff" => $timeDiff, "stop_id" => $potentialStop['stop_id'], "stop_sequence" => $trip['stop_sequence'], - "route_name" => "{$potentialRoute['route_short_name']} {$potentialRoute['route_long_name']}", + "route_name" => "{$potentialRoute['route_short_name']} {$potentialRoute['route_long_name']} {$trip['direction']}", "route_id" => $trip['route_id'] ); echo "Found trip {$trip['trip_id']} at stop {$potentialStop['stop_id']} (#{$potentialStop['stop_name']}, sequence #{$trip['stop_sequence']})
"; --- a/myway/myway_timeliness_reconcile.php +++ b/myway/myway_timeliness_reconcile.php @@ -17,7 +17,7 @@ include ('../include/common.inc.php'); auth(); foreach ($_REQUEST as $key => $value) { - if (strstr($key, "route") && !strstr($value, "Select")) { + if (strstr($key, "route") && !strstr($value, "Select")) { $myway_route = str_replace("route", "", $key); $route_id = $value; $query = "update myway_routes set route_id = :route_id where myway_route = :myway_route"; @@ -100,6 +100,46 @@ '; echo '
'; } +echo '

Routes

'; +/* routes + remove alpha char, search present dropdown */ +$query = "Select * from myway_routes where route_short_name is NUll;"; +debug($query, "database"); +$query = $conn->prepare($query); +$query->execute(); +if (!$query) { + databaseError($conn->errorInfo()); + return Array(); +} +foreach ($query->fetchAll() as $myway_route) { + echo "

{$myway_route[0]}

"; + $query = "Select * from myway_observations where myway_route = :route order by time"; + debug($query, "database"); + $query = $conn->prepare($query); + $query->bindParam(":route", $myway_route[0]); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + return Array(); + } + foreach ($query->fetchAll() as $myway_obvs) { + echo $myway_obvs['myway_stop'] . $myway_obvs['time'] . "
"; + } + $searchRouteNo = preg_replace("/[A-Z]/", "", $myway_route[0]); + echo $searchRouteNo; + echo '
+
"; + echo '
'; +} include_footer(); ?>