<?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> |
|
|
|
|