--- a/include/db/trip-dao.inc.php +++ b/include/db/trip-dao.inc.php @@ -75,8 +75,9 @@ $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; + } + $rv[] = $stopTime; } else { // is untimed point @@ -94,10 +95,11 @@ $stopTime["arrival_time"] = $cur_timepoint["arrival_time"]; } $rv[] = $stopTime; - //var_dump($rv); + } } + //var_dump($rv); return $rv; } function getTripPreviousTimePoint($tripID, $stop_sequence) @@ -144,7 +146,10 @@ // limit interpolation to between nearest actual points. $prevTimePoint = getTripPreviousTimePoint($tripID, $stop_sequence); $nextTimePoint = getTripNextTimePoint($tripID, $stop_sequence); - $range = "AND stop_sequence >= '{$prevTimePoint['stop_sequence']}' AND stop_sequence <= '{$nextTimePoint['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; }