--- a/tripPlanner.php +++ b/tripPlanner.php @@ -1,17 +1,16 @@ $errorMessage"; - echo '
+include ('common.inc.php'); +include_header("Trip Planner", "tripPlanner", true, true); +$from = (isset($_REQUEST['from']) ? filter_var($_REQUEST['from'], FILTER_SANITIZE_STRING) : "Brigalow"); +$to = (isset($_REQUEST['to']) ? filter_var($_REQUEST['to'], FILTER_SANITIZE_STRING) : "Barry"); +$date = (isset($_REQUEST['date']) ? filter_var($_REQUEST['date'], FILTER_SANITIZE_STRING) : date("m/d/Y")); +$time = (isset($_REQUEST['time']) ? filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING) : date("H:i")); +// todo: convert date from form to h:ia? +function tripPlanForm($errorMessage = "") +{ + global $date, $time, $from, $to; + echo "$errorMessage"; + echo '
@@ -31,120 +30,130 @@
'; - echo ""; - } - - function processItinerary($itineraryNumber, $itinerary) - { - echo '
0 ? 'data-collapsed="true"' : "") . '>

Option #' . ($itineraryNumber + 1) . ": " . floor($itinerary->duration / 60000) . " minutes ({$itinerary->startTime} to {$itinerary->endTime})

"; - echo "Walking time: " . floor($itinerary->walkTime / 60000) . " minutes (" . floor($itinerary->walkDistance) . " meters)
\n"; - echo "Transit time: " . floor($itinerary->transitTime / 60000) . " minutes
\n"; - echo "Waiting time: " . floor($itinerary->waitingTime / 60000) . " minutes
\n"; - - - - if (is_array($itinerary->legs->leg)) { - $legMarkers = array(); - foreach ($itinerary->legs->leg as $legNumber => $leg) { - $legMarkers[] = array($leg->from->lat, $leg->from->lon); - } - echo '' . staticmap($legMarkers, 0,"iconb", false) . "
\n"; - echo '

"; - } else { - echo '' . staticmap(array(array($itinerary->legs->leg->from->lat, $itinerary->legs->leg->from->lon)), 0,"iconb", false) . "
\n"; - processLeg(0, $itinerary->legs->leg); - } - - echo "

"; - } - - function processLeg($legNumber, $leg) { - $legArray = object2array($leg); - echo '

Leg #' . ($legNumber + 1) . " ( {$legArray['@mode']} from: {$leg->from->name} to {$leg->to->name}, " . floor($leg->duration / 60000) . " minutes)

\n"; - if ($legArray["@mode"] === "BUS") { - echo "Take bus {$legArray['@route']} " . str_replace("To", "towards", $legArray['@headsign']) . "
"; - } else { - $walkStepMarkers = array(); - foreach ($leg->steps->walkSteps as $stepNumber => $step) { - $walkStepMarkers[] = array($step->lat, $step->lon); - } - echo "" . staticmap($walkStepMarkers, 0,"icong", false) . "
\n"; - foreach ($leg->steps->walkSteps as $stepNumber => $step) { - echo "Walking step " . ($stepNumber + 1) . " $step->absoluteDirection / $step->relativeDirection on $step->streetName for " . floor($step->distance) . " meters
\n"; - } - } - } - - if ($_REQUEST['time']) { - $toPlace = (startsWith($to, "-") ? $to : geocode($to, false)); - $fromPlace = (startsWith($from, "-") ? $from : geocode($from, false)); - if ($toPlace == "" || $fromPlace == "") { - $errorMessage = ""; - if ($toPlace === "") - $errorMessage .= urlencode($to) . " not found.
\n"; - if ($fromPlace === "") - $errorMessage .= urlencode($from) . " not found.
\n"; - tripPlanForm($errorMessage); - } else { - if (isMetricsOn()) { -// Create a new Instance of the tracker -$owa = new owa_php(); -// Set the ID of the site being tracked -$owa->setSiteId($owaSiteID); -// Create a new event object -$event = $owa->makeEvent(); -// Set the Event Type, in this case a "video_play" -$event->setEventType('view_trip_plan'); -// Set a property -$event->set('from',$from); -$event->set('to',$to); -$event->set('time',$time); -$event->set('date',$date); -// Track the event -$owa->trackEvent($event); - } - $url = $otpAPIurl."ws/plan?date=" . urlencode($_REQUEST['date']) . "&time=" . urlencode($_REQUEST['time']) . "&mode=TRANSIT%2CWALK&optimize=QUICK&maxWalkDistance=840&wheelchair=false&toPlace=$toPlace&fromPlace=$fromPlace&intermediatePlaces="; - $ch = curl_init($url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json")); - curl_setopt($ch,CURLOPT_TIMEOUT,5); - $page = curl_exec($ch); - - if(curl_errno($ch)) { tripPlanForm("Trip planner temporarily unavailable: ".curl_errno($ch)." ".curl_error($ch));} - else { - $tripplan = json_decode($page); - debug(print_r($triplan,true)); - echo "

From: {$tripplan->plan->from->name} To: {$tripplan->plan->to->name}

"; - echo "

At: {$tripplan->plan->date}

"; - - if (is_array($tripplan->plan->itineraries->itinerary)) { - echo '
'; - foreach ($tripplan->plan->itineraries->itinerary as $itineraryNumber => $itinerary) { - processItinerary($itineraryNumber, $itinerary); - } - echo "
"; - } else { - processItinerary(0, $tripplan->plan->itineraries->itinerary); - } - } - curl_close($ch); - } - } else { - tripPlanForm(); - } - include_footer(); +} +function processItinerary($itineraryNumber, $itinerary) +{ + echo '
0 ? 'data-collapsed="true"' : "") . '>

Option #' . ($itineraryNumber + 1) . ": " . floor($itinerary->duration / 60000) . " minutes ({$itinerary->startTime} to {$itinerary->endTime})

"; + echo "Walking time: " . floor($itinerary->walkTime / 60000) . " minutes (" . floor($itinerary->walkDistance) . " meters)
\n"; + echo "Transit time: " . floor($itinerary->transitTime / 60000) . " minutes
\n"; + echo "Waiting time: " . floor($itinerary->waitingTime / 60000) . " minutes
\n"; + if (is_array($itinerary->legs->leg)) { + $legMarkers = array(); + foreach ($itinerary->legs->leg as $legNumber => $leg) { + $legMarkers[] = array( + $leg->from->lat, + $leg->from->lon + ); + } + echo '' . staticmap($legMarkers, 0, "iconb", false) . "
\n"; + echo '

"; + } + else { + echo '' . staticmap(array( + array( + $itinerary->legs->leg->from->lat, + $itinerary->legs->leg->from->lon + ) + ) , 0, "iconb", false) . "
\n"; + processLeg(0, $itinerary->legs->leg); + } + echo "

"; +} +function processLeg($legNumber, $leg) +{ + $legArray = object2array($leg); + echo '

Leg #' . ($legNumber + 1) . " ( {$legArray['@mode']} from: {$leg->from->name} to {$leg->to->name}, " . floor($leg->duration / 60000) . " minutes)

\n"; + if ($legArray["@mode"] === "BUS") { + echo "Take bus {$legArray['@route']} " . str_replace("To", "towards", $legArray['@headsign']) . "
"; + } + else { + $walkStepMarkers = array(); + foreach ($leg->steps->walkSteps as $stepNumber => $step) { + $walkStepMarkers[] = array( + $step->lat, + $step->lon + ); + } + echo "" . staticmap($walkStepMarkers, 0, "icong", false) . "
\n"; + foreach ($leg->steps->walkSteps as $stepNumber => $step) { + echo "Walking step " . ($stepNumber + 1) . " $step->absoluteDirection / $step->relativeDirection on $step->streetName for " . floor($step->distance) . " meters
\n"; + } + } +} +if ($_REQUEST['time']) { + $toPlace = (startsWith($to, "-") ? $to : geocode($to, false)); + $fromPlace = (startsWith($from, "-") ? $from : geocode($from, false)); + if ($toPlace == "" || $fromPlace == "") { + $errorMessage = ""; + if ($toPlace === "") $errorMessage.= urlencode($to) . " not found.
\n"; + if ($fromPlace === "") $errorMessage.= urlencode($from) . " not found.
\n"; + tripPlanForm($errorMessage); + } + else { + if (isMetricsOn()) { + // Create a new Instance of the tracker + $owa = new owa_php(); + // Set the ID of the site being tracked + $owa->setSiteId($owaSiteID); + // Create a new event object + $event = $owa->makeEvent(); + // Set the Event Type, in this case a "video_play" + $event->setEventType('view_trip_plan'); + // Set a property + $event->set('from', $from); + $event->set('to', $to); + $event->set('time', $time); + $event->set('date', $date); + // Track the event + $owa->trackEvent($event); + } + $url = $otpAPIurl . "ws/plan?date=" . urlencode($_REQUEST['date']) . "&time=" . urlencode($_REQUEST['time']) . "&mode=TRANSIT%2CWALK&optimize=QUICK&maxWalkDistance=840&wheelchair=false&toPlace=$toPlace&fromPlace=$fromPlace&intermediatePlaces="; + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + "Accept: application/json" + )); + curl_setopt($ch, CURLOPT_TIMEOUT, 5); + $page = curl_exec($ch); + if (curl_errno($ch)) { + tripPlanForm("Trip planner temporarily unavailable: " . curl_errno($ch) . " " . curl_error($ch)); + } + else { + $tripplan = json_decode($page); + debug(print_r($triplan, true)); + echo "

From: {$tripplan->plan->from->name} To: {$tripplan->plan->to->name}

"; + echo "

At: {$tripplan->plan->date}

"; + if (is_array($tripplan->plan->itineraries->itinerary)) { + echo '
'; + foreach ($tripplan->plan->itineraries->itinerary as $itineraryNumber => $itinerary) { + processItinerary($itineraryNumber, $itinerary); + } + echo "
"; + } + else { + processItinerary(0, $tripplan->plan->itineraries->itinerary); + } + } + curl_close($ch); + } +} +else { + tripPlanForm(); +} +include_footer(); ?>