Move open transit data experiments to labs
[busui.git] / labs / tripPlannerTester.php
blob:a/labs/tripPlannerTester.php -> blob:b/labs/tripPlannerTester.php
<?php <html xmlns="http://www.w3.org/1999/xhtml">
include ('../include/common.inc.php'); <head>
//Test code to grab transit times <script src="openlayers/OpenLayers.js"></script>
// make sure to sleep(10); <SCRIPT TYPE="text/javascript" SRC="OpenStreetMap.js"></SCRIPT>
$boundingBoxes = Array( <script type="text/javascript">
"belconnen" => Array(  
"startlat" => - 35.1828,  
"startlon" => 149.0295,  
"finishlat" => - 35.2630,  
"finishlon" => 149.1045,  
) ,  
"north gungahlin civic" => Array(  
"startlat" => - 35.2652,  
"startlon" => 149.1045,  
"finishlat" => -35.2955,  
"finishlon" => 149.1559,  
) ,  
"west duffy" => Array(  
"startlat" => - 35.3252,  
"startlon" => 149.0240,  
"finishlat" => - 35.3997,  
"finishlon" => 149.0676,  
) ,  
"central south" => Array(  
"startlat" => - 35.3042,  
"startlon" => 149.0762,  
"finishlat" => - 35.3370,  
"finishlon" => 149.1806,  
) ,  
"south" => Array(  
"startlat" => - 35.3403,  
"startlon" => 149.0714,  
"finishlat" => - 35.4607,  
"finishlon" => 149.1243,  
)  
   
);  
$latdeltasize = 0.025;  
$londeltasize = 0.025;  
$from = "Barry Drive";  
$fromPlace = (startsWith($from, "-") ? $from : geocode($from, false));  
$startTime = "9:00 am";  
$startDate = "21/03/2011";  
$counter = 0;  
$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";  
echo "<pre>";  
echo "lat,lon,time,latdeltasize, londeltasize, region key name\n";  
   
foreach ($boundingBoxes as $key => $boundingBox) { function init()
for ($i = $boundingBox['startlat']; $i >= $boundingBox['finishlat']; $i-= $latdeltasize) { {
for ($j = $boundingBox['startlon']; $j <= $boundingBox['finishlon']; $j+= $londeltasize) { var extent = new OpenLayers.Bounds(148.98, -35.48, 149.25, -35.15);
$url = $otpAPIurl . "ws/plan?date=" . urlencode($startDate) . "&time=" . urlencode($startTime) . "&mode=TRANSIT%2CWALK&optimize=QUICK&maxWalkDistance=840&wheelchair=false&toPlace=" . $i . "," . $j . "&fromPlace=$fromPlace&intermediatePlaces=";  
$ch = curl_init($url); // set up the map options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); var options =
curl_setopt($ch, CURLOPT_HEADER, 0); {
curl_setopt($ch, CURLOPT_HTTPHEADER, array( maxExtent: extent,
"Accept: application/json" numZoomLevels: 20,
)); };
curl_setopt($ch, CURLOPT_TIMEOUT, 5);  
$page = curl_exec($ch); // create the ol map object
if (curl_errno($ch)) { var map = new OpenLayers.Map('map', options);
echo "Trip planner temporarily unavailable: " . curl_errno($ch) . " " . curl_error($ch);  
} var osmtiles = new OpenLayers.Layer.OSM("OSM");
else {  
$tripplan = json_decode($page);  
if (isset($tripplan->error)) var_dump($tripplan->error);  
$times = Array();  
if (is_array($tripplan->plan->itineraries->itinerary)) {  
   
foreach ($tripplan->plan->itineraries->itinerary as $itineraryNumber => $itinerary) {  
$times[] = floor($itinerary->duration / 60000);  
}  
   
} var nearmap = new OpenLayers.Layer.OSM.NearMap("NearMap");
else {  
$times[] = floor($tripplan->plan->itineraries->itinerary->duration / 60000); var tripplantest = new OpenLayers.Layer.GML("tripplantest", "tripPlannerTester.kml.php", {
} format: OpenLayers.Format.KML,
echo "$i,$j," . min($times) . ",$latdeltasize, $londeltasize,$key\n"; formatOptions: {
} extractStyles: true,
flush(); extractAttributes: true,
ob_flush(); maxDepth: 2
curl_close($ch); }
} });
} map.addLayers([osmtiles,tripplantest,nearmap]);
   
  var lonLat = new OpenLayers.LonLat(149.11, -35.28).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
  map.setCenter(lonLat, 11);
  map.addControl( new OpenLayers.Control.LayerSwitcher({'ascending':false}));
  map.addControl(new OpenLayers.Control.MousePosition(
  {
  displayProjection: new OpenLayers.Projection("EPSG:4326"),
  suffix: "__________________________________"
  }));
  map.addControl(new OpenLayers.Control.MousePosition(
  {
  displayProjection: new OpenLayers.Projection("EPSG:900913")
  }));
   
} }
echo "</pre>";  
?> </script>
   
  </head>
  <body onload="init()">
  <div id="map" width="100%" height="100%" class="smallmap"></div>
  </body>
  </html>