Sitat av
datagutten
Laget en liten sak nå som viser sanntid:
http://host.datagutten.net/trafikant...eplass=2300500
Tallene bakerst i adressen er id for en holdeplass. Det er også mulig å skrive navnet på en holdeplass, men foreløpig fungerer det bare for navn uten parenteser.
Kildekode:
Kode
<?Php
$url='http://api';
if(!isset($_GET['holdeplass']))
die('Navn eller id på holdeplass må oppgis');
$holdeplass=$_GET['holdeplass'];
function cleandate($date) //Gjør om datofelt til unix timestamp
{
return substr($date,6,10);
}
function showtime($seconds) //Vis tid i henhold til http://labs.trafikanten.no/ofte-stilte-spoersmaal.aspx#98
{
if ($seconds<45)
$time='Nå';
elseif ($seconds>=45 && $seconds<=104)
$time=1;
elseif ($seconds>=105 && $seconds<=164)
$time=2;
elseif ($seconds>=165 && $seconds<=224)
$time=3;
elseif ($seconds>=225 && $seconds<=284)
$time=4;
elseif ($seconds>=285 && $seconds<=344)
$time=5;
elseif ($seconds>=345 && $seconds<=404)
$time=6;
elseif ($seconds>=405 && $seconds<=464)
$time=7;
elseif ($seconds>=465 && $seconds<=524)
$time=8;
elseif ($seconds>=525 && $seconds<=584)
$time=9;
elseif ($seconds>=585)
$time=false;
if(is_numeric($time))
$time=$time.' min';
return $time;
}
if(!is_numeric($holdeplass)) //Sjekk om det er oppgitt navn eller id på holdeplass
{
$holdeplassdata=json_decode($data=file_get_contents($q=$url.'/Place/FindMatches/'.$holdeplass),true);
$holdeplassid=$holdeplassdata[0]['ID'];
var_dump($holdeplassdata.$q);
}
else
$holdeplassid=$holdeplass;
$json=file_get_contents($url.'/RealTime/GetRealTimeData/'.$holdeplassid);
$realtime=json_decode($json,true);
//print_r($realtime);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sanntid for <?php echo $holdeplass ?></title>
</head>
<body>
<?Php
foreach ($realtime as $arrival)
{
$arrivaltime=cleandate($arrival['AimedArrivalTime']);
echo $arrival['LineRef'].' '.$arrival['DestinationDisplay'].': ';
$now=cleandate($arrival['RecordedAtTime']);
$time=showtime($arrivaltime-$now);
if($time===false)
$time=date('H:i',$arrivaltime);
//$time=(int)date('i',$arrivaltime-$now);
echo "$time<br>\n";
}
?>
</body>
</html>
Utrolig stilig
Men om jeg limer inn IDen til holdeplassen visperud, som er
Kode
"Zone": "1",
"X": 608133,
"Y": 6645768,
"ID": 2300500,
"Name": "Visperud (i Solheimvn)",
"District": "Lørenskog",
"Type": 0,
"Stops": [],
"ShortName": "VIS"
Så får jeg opp disse dataene
Kode
411 Lillestrøm: Nå
411 Oslo Bussterminal: 23:08
401 Kjeller: 23:12
401 Oslo Bussterminal: 23:14
411 Lillestrøm: 23:17
411 Oslo Bussterminal: 23:38
401 Kjeller: 23:42
401 Oslo Bussterminal: 23:44
Hvordan kan koden konfigureres slik at visperud holdeplass dukker opp istede for Lillestrøm? Slik at jeg vet når bussen går fra denne holdeplassen?
Sist endret av Opous; 16. mars 2012 kl. 22:52.