= ($i - 1)) { return $inh . $outh; } if ($i == 22) $outh = "↗"; if ($i == 67) $outh = "→"; if ($i == 112) $outh = "↘"; if ($i == 157) $outh = "↓"; if ($i == 202) $outh = "↙"; if ($i == 247) $outh = "←"; if ($i == 292) $outh = "↖"; if ($i == 337) $outh = "࢏"; } return $inh; // . $outh; } function great_circle_distance($talis, $gnolis, $latis, $longis) { $ourdist=0.0; $rgnol=(($gnolis) * pi() / 180.0); $rtal=(($talis) * pi() / 180.0); $rlong=(($longis) * pi() / 180.0); $rlat=(($latis) * pi() / 180.0); $deltalong = abs(((($gnolis)-($longis)) * pi() / 180.0)); $acof = (sin($rtal) * sin($rlat)) + (cos($rtal) * cos($rlat) * cos($deltalong)); // via http://en.wikipedia.org/wiki/Great-circle_distance ... thanks $ourdist = (round((acos($acof) * 6371000.0) + 0.00001) * 100) / 100; return $ourdist; } $selname = ""; $bigselname=""; if (isset($_POST['selname'])) $bigselname = str_replace(" ","%20",$_POST['selname']); if (isset($_GET['selname'])) $bigselname = str_replace(" ","%20",$_GET['selname']); if ($bigselname != "") { $bitsare=explode("~", $bigselname); $selname = $bitsare[0]; if (sizeof($bitsare) > 1) $bigselname=$bitsare[1]; } if ($selname != "") { $pageContent = file_get_contents("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20nextbus.vehicles%20where%20route%3D'" . $selname . "'&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=",0,null,null); $json_output = json_decode($pageContent); // ,true); // Confirm that vehicles were returned before parsing $delim=""; $prefix=""; $suffix=""; if (!is_null($json_output->query->results)) { $i = 0; if ($json_output->query->count == 1) { if (isset($_GET['latitude'])) { $currdist = great_circle_distance($_GET['latitude'], $_GET['longitude'], $json_output->query->results->vehicle->lat, $json_output->query->results->vehicle->lon); if ($smallestdist < 0.0 || $currdist < $smallestdist) $smallestdist = $currdist; if ($currdist <= $maxdistaway) { $spareeverymapprefix = "youllNeverfindthis"; $thismapprefix = $everymapprefix; $distaway = ", " . ($currdist / 1000.0) . " km away"; } else { $thismapprefix = ""; $distaway = ", Out of range"; } } else { $thismapprefix = ""; $distaway=""; } echo "\n"; $xtitle = str_replace("'", "`", $json_output->query->results->vehicle->dirTag.", ".$json_output->query->results->vehicle->id.", ".htme($json_output->query->results->vehicle->heading).", ".$json_output->query->results->vehicle->leadingVehicleId. kph($json_output->query->results->vehicle->speedKmHr) . " kph, ".$json_output->query->results->vehicle->secsSinceReport. " secs ago".$distaway); $title = str_replace("'", "`", $json_output->query->results->vehicle->dirTag.", ".$json_output->query->results->vehicle->id.", ".($json_output->query->results->vehicle->heading).", ".$json_output->query->results->vehicle->leadingVehicleId. kph($json_output->query->results->vehicle->speedKmHr) . " kph, ".$json_output->query->results->vehicle->secsSinceReport. " secs ago".$distaway); echo ""; } else { $title = str_replace("'", "`", str_replace("%20"," ",$bigselname)); $delim = "\n

" . $xtitle . "

"; echo "\n"; echo "\n
"; for ($i=0; $i<$json_output->query->count; $i++) { if (isset($_GET['latitude'])) { $currdist = great_circle_distance($_GET['latitude'], $_GET['longitude'], $json_output->query->results->vehicle[$i]->lat, $json_output->query->results->vehicle[$i]->lon); if ($smallestdist < 0.0 || $currdist < $smallestdist) $smallestdist = $currdist; if ($currdist <= $maxdistaway) { $spareeverymapprefix = "Youllneverfindthis"; $thismapprefix = $everymapprefix; $distaway = ", " . ($currdist / 1000.0) . " km away"; } else { $thismapprefix = ""; $distaway = ", Out of range"; } } else { $thismapprefix = ""; $distaway = ""; } $xtitle = str_replace("'", "`", $json_output->query->results->vehicle[$i]->dirTag.", ".$json_output->query->results->vehicle[$i]->id.", ".htme($json_output->query->results->vehicle[$i]->heading).", ".$json_output->query->results->vehicle[$i]->leadingVehicleId.", ". kph($json_output->query->results->vehicle[$i]->speedKmHr) . " kph, ".$json_output->query->results->vehicle[$i]->secsSinceReport. " secs ago".$distaway); $title = str_replace("'", "`", $json_output->query->results->vehicle[$i]->dirTag.", ".$json_output->query->results->vehicle[$i]->id.", ".($json_output->query->results->vehicle[$i]->heading).", ".$json_output->query->results->vehicle[$i]->leadingVehicleId.", ". kph($json_output->query->results->vehicle[$i]->speedKmHr) . " kph, ".$json_output->query->results->vehicle[$i]->secsSinceReport. " secs ago".$distaway); $prefix .= ($delim . $json_output->query->results->vehicle[$i]->lat . "," . $json_output->query->results->vehicle[$i]->lon . ",~" . urldecode($title) . "~"); $delim = "]%20,%20["; $suffix .= ""; if (($i != 0) && ($i % 2) == 0) { $suffix .= "\n"; } } } if ($smallestdist < 0.0) { echo "" . $prefix . $suffix . "
" . $title . "

\n

" . $xtitle . "

"; $suffix .= "\n"; $suffix .= "\n
"; } else { echo "" . str_replace($spareeverymapprefix, "", $prefix) . $suffix . ""; } } else { echo "

Nothing found at this time.

"; } } else if (isset($_POST['selname']) || isset($_GET['selname'])) { $pageContent = file_get_contents("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20nextbus.routes&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=",0,null,null); $json_output = json_decode($pageContent); // ,true); // Confirm that routes were returned before parsing $selstuff=""; //$selstuff=""; if (!is_null($json_output->query->results)) { $i = 0; if ($json_output->query->count == 1) { $selstuff .= ""; } else { for ($i=0; $i<$json_output->query->count; $i++) { $selstuff .= ""; } } echo ""; } } ?>