Example #1
0
					$startStopStartDepotCommonBuses=getBusesCommonBetweenTwoStops($startStop,$startStopDepotName);
					//print_r($startStopStartDepotCommonBuses);
					$endDepotEndStopCommonBuses=getBusesCommonBetweenTwoStops($endStopDepotName,$endStop);
					//print_r($endDepotEndStopCommonBuses);
					if(sizeof($startStopStartDepotCommonBuses)>0 && sizeof($endDepotEndStopCommonBuses) >0)
					{	
						//echo "hhh";
						//get the buses between the two depots
						$busesForStartDepot=explode(",",getBusesForStopWithFrequency($startStopDepotName));
						$busesForEndDepot=explode(",",getBusesForStopWithFrequency($endStopDepotName));
						$startStopOffsetDistance=$startDistance;
						$endStopOffsetDistance=$endDistance;
						$startStopStartDepotCommonBusesString=implode(",",$startStopStartDepotCommonBuses);
						$endDepotEndStopCommonBusesString=implode(",",$endDepotEndStopCommonBuses);

						 $interDepotStatus= getJunctionsForInterDepotTravel($startStop,$endStop,$startStopDepotName,$endStopDepotName,$busesForStartDepot,$busesForEndDepot,$startStopOffsetDistance,$endStopOffsetDistance,$startStopStartDepotCommonBusesString,$endDepotEndStopCommonBusesString,$startStopDepotDistance,$endStopDepotDistance,0);	

						 //need to add the bus info between the startstop and depot+last depot and end point
						 
						 if($interDepotStatus=="409"||$interDepotStatus=="410")
						 {
							 // buses not found between the depots using a single or no hop
							 $strRoute='<Routes>';
							 $strRoute=$strRoute.'<Route>';
							 $strRoute=$strRoute.'<IsDirectRoute>N</IsDirectRoute>';
							 $strRoute=$strRoute.'<ErrorCode>'.$interDepotStatus.'</ErrorCode>';
							 $strRoute=$strRoute.'</Route>';
							 $strRoute=$strRoute.'</Routes>';
							 echo $strRoute;
						 }
						 else
Example #2
0
function getData($startStop, $endStop, $startDistance, $endDistance)
{
    //$showOnlyIndirectRoutes=$_GET['onlyIndirectRoutes'];
    // find out the buses that pass through these stops
    $checkString = findDistanceBetweenSourceDestination($startStop, $endStop);
    $arr = array();
    $arr = explode(":", $checkString);
    //print_r($arr);
    if ($arr[4] < 0.7) {
        $strRoute = '';
        $routeDetails = htmlentities($startStop) . ":" . $arr[0] . ":" . $arr[1] . ":" . htmlentities($endStop) . ":" . $arr[2] . ":" . $arr[3] . ":" . $arr[4];
        //$st='sdsd';
        $strRoute = '<Routes>';
        $strRoute = $strRoute . '<Route>';
        $strRoute = $strRoute . '<IsDirectRoute>N</IsDirectRoute>';
        $strRoute = $strRoute . '<ErrorCode>5</ErrorCode>';
        $strRoute = $strRoute . '<RouteDetails>' . $routeDetails . '</RouteDetails>';
        $strRoute = $strRoute . '</Route>';
        $strRoute = $strRoute . '</Routes>';
        return $strRoute;
        //echo "The distance is walkable";
    } else {
        $startBuses = explode(",", getBusesForStopWithFrequency($startStop));
        $endBuses = explode(",", getBusesForStopWithFrequency($endStop));
        //removed the use of the showdirect buses form the helper
        $status = getJunctionsForIndirectBusesRevamp2($startStop, $endStop, $startBuses, $endBuses, $startDistance, $endDistance, 0);
        //echo "normal status".$status."<br/>";
        // this should not be the case now but just for the sake of eror handling
        if ($status == "404" || $status == "405") {
            list($endStopDepotName, $endStopDepotDistance) = explode(":", getDepotName($endStop));
            list($startStopDepotName, $startStopDepotDistance) = explode(":", getDepotName($startStop));
            $totalDistanceForCase1 = 10000;
            $totalDistanceForCase2 = 10000;
            if ($startStopDepotDistance < (double) 7) {
                //find direct bus between start stop and start depot + distance
                $startStopStartDepotCommonBuses = getBusesCommonBetweenTwoStops($startStop, $startStopDepotName);
                if (sizeof($startStopStartDepotCommonBuses) > 0) {
                    $startStopStartDepotDistance = $startStopDepotDistance;
                    $startDepotEndStopCommonBuses = getBusesCommonBetweenTwoStops($startStopDepotName, $endStop);
                    //print_r($startDepotEndStopCommonBuses);
                    //echo sizeof($startDepotEndStopCommonBuses);
                    if (sizeof($startDepotEndStopCommonBuses) > 0) {
                        $startDepotEndStopDistance = distanceBetweenStops($startStopDepotName, $endStop);
                        $totalDistanceForCase1 = $startDistance + $startStopStartDepotDistance + $startDepotEndStopDistance + $endDistance;
                        $routeInfoString = "There is no direct or indirect bus availalble between " . $startStop . " and " . $endStop . " We have tried to find a route that takes you to a stop where you can find a bus to your destination. However you might have to travel little offroute to reach to the intermediate stop";
                        $strRoute1 = '<Routes>';
                        $strRoute1 = $strRoute1 . '<Route>';
                        $strRoute1 = $strRoute1 . '<IsDirectRoute>N</IsDirectRoute>';
                        $strRoute1 = $strRoute1 . '<ErrorCode>7</ErrorCode>';
                        $strRoute1 = $strRoute1 . "<RouteInfo>" . $routeInfoString . "</RouteInfo>";
                        $routeDetail = "<StartStop>" . htmlentities($startStop) . "</StartStop>";
                        $routeDetail = $routeDetail . "<EndStop>" . htmlentities($endStop) . "</EndStop>";
                        $routeDetail = $routeDetail . "<Depot>" . htmlentities($startStopDepotName) . ":" . getLatitudeLongitude($startStopDepotName) . "</Depot>";
                        $routeDetail = $routeDetail . "<BusesStartStopAndDepot>" . implode(",", $startStopStartDepotCommonBuses) . "</BusesStartStopAndDepot>";
                        $routeDetail = $routeDetail . "<BusesEndStopAndDepot>" . implode(",", $startDepotEndStopCommonBuses) . "</BusesEndStopAndDepot>";
                        $routeDetail = $routeDetail . "<DistanceBetweenDepotAndStartStop>" . $startStopStartDepotDistance . "</DistanceBetweenDepotAndStartStop>";
                        $routeDetail = $routeDetail . "<DistanceBetweenDepotAndEndStop>" . $startDepotEndStopDistance . "</DistanceBetweenDepotAndEndStop>";
                        $routeDetail = $routeDetail . "<TotalRouteDistance>" . $totalDistanceForCase1 . "</TotalRouteDistance>";
                        $routeDetail = $routeDetail . "<UseDepot>1</UseDepot>";
                        $strRoute1 = $strRoute1 . '<RouteDetails>' . $routeDetail . '</RouteDetails>';
                        $strRoute1 = $strRoute1 . '</Route>';
                        $strRoute1 = $strRoute1 . '</Routes>';
                        // echo $strRoute1;
                    }
                }
            }
            // check if the detour is from the endpoint side
            //2. possible to have startStop->EndDepot->endpoint using Bus1, Bus2
            if ($endStopDepotDistance < (double) 7) {
                //echo "second case";
                //find the direct bus between start stop and end depot +distance
                $startStopEndDepotCommonBuses = getBusesCommonBetweenTwoStops($startStop, $endStopDepotName);
                //print_r($startStopEndDepotCommonBuses);
                if (sizeof($startStopEndDepotCommonBuses) > 0) {
                    //echo "first condifition";
                    $startStopEndDepotDistance = distanceBetweenStops($startStop, $endStopDepotName);
                    $endDepotEndStopCommonBuses = getBusesCommonBetweenTwoStops($endStopDepotName, $endStop);
                    if (sizeof($endDepotEndStopCommonBuses) > 0) {
                        //find the direct bus between end depot and the end stop + distnace
                        $endDepotEndStopDistance = $endStopDepotDistance;
                        $totalDistanceForCase2 = $startDistance + $startStopEndDepotDistance + $endDepotEndStopDistance + $endDistance;
                        $routeInfoString = "There is no direct or indirect bus availalble between " . $startStop . " and " . $endStop . ". We have tried to find a route that takes you to a stop where you can find a bus to your destination. However you might have to travel little offroute to reach to the intermediate stop";
                        $strRoute2 = '<Routes>';
                        $strRoute2 = $strRoute2 . '<Route>';
                        $strRoute2 = $strRoute2 . '<IsDirectRoute>N</IsDirectRoute>';
                        $strRoute2 = $strRoute2 . '<ErrorCode>8</ErrorCode>';
                        $strRoute1 = $strRoute1 . "<RouteInfo>" . $routeInfoString . "</RouteInfo>";
                        $routeDetail = "<StartStop>" . htmlentities($startStop) . "</StartStop>";
                        $routeDetail = $routeDetail . "<EndStop>" . htmlentities($endStop) . "</EndStop>";
                        $routeDetail = $routeDetail . "<Depot>" . htmlentities($endStopDepotName) . ":" . getLatitudeLongitude($endStopDepotName) . "</Depot>";
                        $routeDetail = $routeDetail . "<BusesStartStopAndDepot>" . implode(",", $startStopEndDepotCommonBuses) . "</BusesStartStopAndDepot>";
                        $routeDetail = $routeDetail . "<BusesEndStopAndDepot>" . implode(",", $endDepotEndStopCommonBuses) . "</BusesEndStopAndDepot>";
                        $routeDetail = $routeDetail . "<DistanceBetweenDepotAndStartStop>" . $startStopEndDepotDistance . "</DistanceBetweenDepotAndStartStop>";
                        $routeDetail = $routeDetail . "<DistanceBetweenDepotAndEndStop>" . $endDepotEndStopDistance . "</DistanceBetweenDepotAndEndStop>";
                        $routeDetail = $routeDetail . "<TotalRouteDistance>" . $totalDistanceForCase2 . "</TotalRouteDistance>";
                        $routeDetail = $routeDetail . "<UseDepot>1</UseDepot>";
                        $strRoute2 = $strRoute2 . '<RouteDetails>' . $routeDetail . '</RouteDetails>';
                        $strRoute2 = $strRoute2 . '</Route>';
                        $strRoute2 = $strRoute2 . '</Routes>';
                        // echo $strRoute2;
                    }
                }
            }
            if ($totalDistanceForCase1 < 10000 && $totalDistanceForCase2 < 10000) {
                if ($totalDistanceForCase1 > $totalDistanceForCase2) {
                    return $strRoute2;
                } else {
                    return $strRoute1;
                }
            } else {
                if ($totalDistanceForCase1 == 10000 && $totalDistanceForCase2 == 10000) {
                    if ($startStopDepotDistance < (double) 7 && $endStopDepotDistance < (double) 7) {
                        //find the direct bus between start stop and end depot +distance
                        $startStopStartDepotCommonBuses = getBusesCommonBetweenTwoStops($startStop, $startStopDepotName);
                        //print_r($startStopStartDepotCommonBuses);
                        $endDepotEndStopCommonBuses = getBusesCommonBetweenTwoStops($endStopDepotName, $endStop);
                        //print_r($endDepotEndStopCommonBuses);
                        if (sizeof($startStopStartDepotCommonBuses) > 0 && sizeof($endDepotEndStopCommonBuses) > 0) {
                            //echo "hhh";
                            //get the buses between the two depots
                            $busesForStartDepot = explode(",", getBusesForStopWithFrequency($startStopDepotName));
                            $busesForEndDepot = explode(",", getBusesForStopWithFrequency($endStopDepotName));
                            $startStopOffsetDistance = $startDistance;
                            $endStopOffsetDistance = $endDistance;
                            $startStopStartDepotCommonBusesString = implode(",", $startStopStartDepotCommonBuses);
                            $endDepotEndStopCommonBusesString = implode(",", $endDepotEndStopCommonBuses);
                            $interDepotStatus = getJunctionsForInterDepotTravel($startStop, $endStop, $startStopDepotName, $endStopDepotName, $busesForStartDepot, $busesForEndDepot, $startStopOffsetDistance, $endStopOffsetDistance, $startStopStartDepotCommonBusesString, $endDepotEndStopCommonBusesString, $startStopDepotDistance, $endStopDepotDistance, 0);
                            //need to add the bus info between the startstop and depot+last depot and end point
                            if ($interDepotStatus == "409" || $interDepotStatus == "410") {
                                // buses not found between the depots using a single or no hop
                                $strRoute = '<Routes>';
                                $strRoute = $strRoute . '<Route>';
                                $strRoute = $strRoute . '<IsDirectRoute>N</IsDirectRoute>';
                                $strRoute = $strRoute . '<ErrorCode>' . $interDepotStatus . '</ErrorCode>';
                                $strRoute = $strRoute . '</Route>';
                                $strRoute = $strRoute . '</Routes>';
                                return $strRoute;
                            } else {
                                $strRoute = $interDepotStatus;
                                return $strRoute;
                            }
                        }
                    } else {
                        //the depots are too far away
                        $strRoute = '<Routes>';
                        $strRoute = $strRoute . '<Route>';
                        $strRoute = $strRoute . '<IsDirectRoute>N</IsDirectRoute>';
                        $strRoute = $strRoute . '<ErrorCode>411</ErrorCode>';
                        $strRoute = $strRoute . '</Route>';
                        $strRoute = $strRoute . '</Routes>';
                        return $strRoute;
                    }
                }
            }
        } else {
            return $status;
        }
    }
    //echo "<sample>hhhh</sample>";
}