<html xmlns="http://www.w3.org/1999/xhtml"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<head> |
<script src="openlayers/OpenLayers.js"></script> |
<script src="openlayers/OpenLayers.js"></script> |
<SCRIPT TYPE="text/javascript" SRC="OpenStreetMap.js"></SCRIPT> |
<SCRIPT TYPE="text/javascript" SRC="OpenStreetMap.js"></SCRIPT> |
<script type="text/javascript" src="jquery.1.3.2.min.js"></script> |
<script type="text/javascript" src="jquery.1.3.2.min.js"></script> |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
|
function init() |
function init() |
{ |
{ |
// create the ol map object |
// create the ol map object |
var map = new OpenLayers.Map('map'); |
var map = new OpenLayers.Map('map'); |
|
|
var osmtiles = new OpenLayers.Layer.OSM("local", "http://127.0.0.1/Maps/OSM/${z}/${x}/${y}.png") |
var osmtiles = new OpenLayers.Layer.OSM("local", "http://127.0.0.1/Maps/OSM/${z}/${x}/${y}.png") |
// use http://open.atlas.free.fr/GMapsTransparenciesImgOver.php and http://code.google.com/p/googletilecutter/ to make tiles |
// use http://open.atlas.free.fr/GMapsTransparenciesImgOver.php and http://code.google.com/p/googletilecutter/ to make tiles |
markers = new OpenLayers.Layer.Markers("Between Stop Markers"); |
markers = new OpenLayers.Layer.Markers("Between Stop Markers"); |
|
|
|
|
<?php |
<?php |
$conn = pg_connect("dbname=bus user=postgres password=snmc"); |
$conn = pg_connect("dbname=bus user=postgres password=snmc"); |
if (!$conn) { |
if (!$conn) { |
echo "An error occured.\n"; |
echo "An error occured.\n"; |
exit; |
exit; |
} |
} |
$result_stops = pg_query($conn, "Select * FROM stops"); |
$result_stops = pg_query($conn, "Select * FROM stops"); |
|
|
while ($stop = pg_fetch_assoc($result_stops)) { |
while ($stop = pg_fetch_assoc($result_stops)) { |
echo 'marker = new OpenLayers.Marker(new OpenLayers.LonLat('.($stop['lng']/10000000).",".($stop['lat']/10000000).') |
echo 'marker = new OpenLayers.Marker(new OpenLayers.LonLat(' . ($stop['lng'] / 10000000) . "," . ($stop['lat'] / 10000000) . ') |
.transform( |
.transform( |
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 |
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 |
new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection |
new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection |
));'; |
));'; |
|
|
echo ' |
echo ' |
marker.id="'.$stop['geohash'].'"; |
marker.id="' . $stop['geohash'] . '"; |
markers.addMarker(marker); |
markers.addMarker(marker); |
marker.events.register("mousedown", marker, function() { |
marker.events.register("mousedown", marker, function() { |
document.getElementById("between_points").innerHTML += this.id+";"; |
document.getElementById("between_points").innerHTML += this.id+";"; |
}); |
}); |
'; |
'; |
} |
} |
?> |
?> |
var timeicon = new OpenLayers.Icon("http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png",new OpenLayers.Size(32,32)); |
var timeicon = new OpenLayers.Icon("http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png",new OpenLayers.Size(32,32)); |
var timepoints = new OpenLayers.Layer.GeoRSS("Timing Points", "displaytimepoints.georss.php", { icon: timeicon }); |
var timepoints = new OpenLayers.Layer.GeoRSS("Timing Points", "displaytimepoints.georss.php", { icon: timeicon }); |
|
|
map.addLayers([osmtiles, markers,timepoints]); |
map.addLayers([osmtiles, markers,timepoints]); |
map.addControl(new OpenLayers.Control.LayerSwitcher()); |
map.addControl(new OpenLayers.Control.LayerSwitcher()); |
map.zoomToExtent(markers.getDataExtent()); |
map.zoomToExtent(markers.getDataExtent()); |
} |
} |
|
</script> |
|
<script type="text/javascript"> |
|
function submitBetween () { |
|
$.post("betweenpoint.submit.php", $("#inputform").serialize(), function(html){ |
|
$("#response").html(html); |
|
//clearForms(); |
|
return false; |
|
}); |
|
}; |
|
|
function submit(){ |
|
$.ajax({ |
|
type: "POST", |
|
url: "betweenpoint.submit.php", |
|
data: "reverse=" + document.getElementById("reverse").value + |
|
"&from=" + document.getElementById("from").value + |
|
"&to=" + document.getElementById("to").value + |
|
"&routes=" + document.getElementById("routes").value + |
|
"&between_points=" + document.getElementById("between_points").value, |
|
success: function(html){ |
|
$("#response").html(html); |
|
clearForms(); |
|
} |
|
}); |
|
|
|
} |
|
<!-- |
|
function OnChange(dropdown) |
function OnChange(dropdown) |
{ |
{ |
var myindex = dropdown.selectedIndex |
var myindex = dropdown.selectedIndex |
var selValue = dropdown.options[myindex].value |
var selValue = dropdown.options[myindex].value; |
alert(selValue); |
$("#routes").val(selValue.split(":",2)[0]); |
|
fromto = selValue.split(":",2)[1]; |
|
$("#from").val(fromto.split("->",2)[0]); |
|
$("#to").val(fromto.split("->",2)[1]); |
return true; |
return true; |
} |
} |
//--> |
|
|
|
// function will clear input elements on each form |
// function will clear input elements on each form |
function clearForms(){ |
function clearForms(){ |
document.getElementById("between_points").innerHTML = ""; |
document.getElementById("between_points").innerHTML = ""; |
// declare element type |
// declare element type |
var type = null; |
var type = null; |
// loop through forms on HTML page |
// loop through forms on HTML page |
for (var x=0; x<document.forms.length; x++){ |
for (var x=0; x<document.forms.length; x++){ |
// loop through each element on form |
// loop through each element on form |
for (var y=0; y<document.forms[x].elements.length; y++){ |
for (var y=0; y<document.forms[x].elements.length; y++){ |
// define element type |
// define element type |
type = document.forms[x].elements[y].type |
type = document.forms[x].elements[y].type |
// alert before erasing form element |
// alert before erasing form element |
//alert('form='+x+' element='+y+' type='+type); |
//alert('form='+x+' element='+y+' type='+type); |
// switch on element type |
// switch on element type |
switch(type){ |
switch(type){ |
case "text": |
case "text": |
case "textarea": |
case "textarea": |
case "password": |
case "password": |
//case "hidden": |
//case "hidden": |
document.forms[x].elements[y].value = ""; |
document.forms[x].elements[y].value = ""; |
break; |
break; |
case "radio": |
case "radio": |
case "checkbox": |
case "checkbox": |
document.forms[x].elements[y].checked = ""; |
document.forms[x].elements[y].checked = true; |
break; |
break; |
case "select-one": |
case "select-one": |
document.forms[x].elements[y].options[0].selected = true; |
document.forms[x].elements[y].options[0].selected = true; |
break; |
break; |
case "select-multiple": |
case "select-multiple": |
for (z=0; z<document.forms[x].elements[y].options.length; z++){ |
for (z=0; z<document.forms[x].elements[y].options.length; z++){ |
document.forms[x].elements[y].options[z].selected = false; |
document.forms[x].elements[y].options[z].selected = false; |
} |
} |
break; |
break; |
} |
} |
} |
} |
} |
} |
} |
} |
</script> |
</script> |
|
|
</head> |
</head> |
<body onload="init()"> |
<body onload="init()"> |
<div id="inputpane"><form id="inputform"> |
<div id="inputpane"><form id="inputform"> |
<select name=selectPair onchange='OnChange(this.form.selectPair);'> |
<select name=selectPair onchange='OnChange(this.form.selectPair);'> |
<option>Select a from/to pair...</option> |
<option>Select a from/to pair...</option> |
<?php |
<?php |
include('spyc/spyc.php'); |
include('spyc/spyc.php'); |
//$timetable = Spyc::YAMLLoad('../spyc.yaml'); |
//$timetable = Spyc::YAMLLoad('../spyc.yaml'); |
$path = "maxious-canberra-transit-feed/output/"; |
$path = "maxious-canberra-transit-feed/output/"; |
$dhandle = opendir("maxious-canberra-transit-feed/output/"); |
$dhandle = opendir("maxious-canberra-transit-feed/output/"); |
// define an array to hold the files |
// define an array to hold the files |
$files = array(); |
$files = array(); |
$paths = array(); |
$paths = array(); |
|
|
|
if ($dhandle) { |
|
// loop through all of the files |
|
while (false !== ($fname = readdir($dhandle))) { |
|
if (($fname != '.') && ($fname != '..')) { |
|
$timetable = Spyc::YAMLLoad("maxious-canberra-transit-feed/output/" . $fname); |
|
// Strip off individual platforms because it usually doesn't matter for routes |
|
$timetable["time_points"] = preg_replace("/-.* Platform.*/","",$timetable["time_points"]); |
|
for ($i = 0; $i < sizeof($timetable["time_points"]) - 1; $i++) { |
|
@$paths[trim($timetable["time_points"][$i]) . "->" . trim($timetable["time_points"][$i + 1])] .= $timetable["short_name"] . ";"; |
|
} |
|
} |
|
} |
|
} |
|
ksort($paths); |
|
|
|
$completedPaths = array(); |
|
$result_betweenstops = pg_query($conn, "Select * FROM between_stops"); |
|
while ($path = pg_fetch_assoc($result_betweenstops)) { |
|
$completedPaths[trim($path['fromlocation']) . "->" . trim($path['tolocation'])] .= trim($path['routes']); |
|
} |
|
|
|
foreach ($paths as $path => $routes) { |
|
if (!in_array($path, array_keys($completedPaths))) { |
|
echo "<option value=\"$routes:$path\">" . sizeof(explode(";", $routes)) . " $path</option>\n"; |
|
} else { |
|
$completedRoutes = explode(";", $completedPaths[$path]); |
|
$incompleteRoutes = ""; |
|
foreach (explode(";", $routes) as $route) { |
|
|
if ($dhandle) { |
if (!in_array($route,$completedRoutes)) { |
// loop through all of the files |
$incompleteRoutes .= $route.';'; |
while (false !== ($fname = readdir($dhandle))) { |
} |
if (($fname != '.') && ($fname != '..')) { |
|
$timetable = Spyc::YAMLLoad("maxious-canberra-transit-feed/output/".$fname); |
|
for ($i = 0; $i < sizeof($timetable["time_points"]) -1 ; $i++) |
|
{ |
|
@$paths[$timetable["time_points"][$i]."->".$timetable["time_points"][$i+1]] .= $timetable["short_name"].";"; |
|
} |
|
} |
} |
} |
if ($incompleteRoutes != "") echo "<option value=\"$incompleteRoutes:$path\">" . sizeof(explode(";", $incompleteRoutes)) . " $path</option>\n"; |
} |
} |
$completedPaths = Array("Cameron Ave Bus Station->Lathlain St Bus Station", |
|
"Lathlain St Bus Station->Cohen St Bus Station", |
} |
"Cohen St Bus Station->Lathlain St Bus Station", |
|
"Lathlain St Bus Station->Cameron Ave Bus Station", |
|
"Lathlain St Bus Station - Platform 1->Cameron Ave Bus Station - Platform 1", |
|
"Lathlain St Bus Station - Platform 2->Cameron Ave Bus Station - Platform 1", |
|
"Lathlain St Bus Station - Platform 2->Cameron Ave Bus Station - Platform 2", |
|
"Lathlain St Bus Station - Platform 3->Cameron Ave Bus Station - Platform 2", |
|
"Lathlain St Bus Station - Platform 3->Cameron Ave Bus Station - Platform 3", |
|
"Lathlain St Bus Station - Platform 4->Cohen St Bus Station - Platform 4", |
|
"Lathlain St Bus Station - Platform 4->Cohen St Bus Station - Platform 6", |
|
"Lathlain St Bus Station - Platform 5->Cohen St Bus Station - Platform 5", |
|
"Lathlain St Bus Station - Platform 6->Cohen St Bus Station - Platform 5", |
|
"Cohen St Bus Station - Platform 1->Lathlain St Bus Station - Platform 2", |
|
"Cohen St Bus Station - Platform 1->Lathlain St Bus Station - Platform 3", |
|
"Cohen St Bus Station - Platform 2->Lathlain St Bus Station - Platform 1", |
|
"Cohen St Bus Station - Platform 2->Lathlain St Bus Station - Platform 2", |
|
"Cohen St Bus Station - Platform 2->Lathlain St Bus Station - Platform 3", |
|
"Cohen St Bus Station - Platform 3->Lathlain St Bus Station - Platform 1", |
|
"Cameron Ave Bus Station - Platform 4->Lathlain St Bus Station - Platform 4", |
|
"Cameron Ave Bus Station - Platform 5->Lathlain St Bus Station - Platform 5", |
|
"Cameron Ave Bus Station - Platform 5->Lathlain St Bus Station - Platform 6" |
|
); |
|
ksort($paths); |
|
foreach ($paths as $path => $routes) |
|
{ |
|
if (!in_array($path,$completedPaths)) echo "<option value=\"$routes:$path\">".sizeof(explode(";",$routes))." $path</option>\n"; |
|
} |
|
?> |
?> |
</select> |
</select> |
from <input type="text" id="from"/> |
from <input type="text" name="from" id="from"/> |
to <input type="text" id="to"/> |
to <input type="text" name="to" id="to"/> |
<br> |
<br> |
on routes <input type="text" id="routes"/> |
on routes <input type="text" name="routes" id="routes"/> |
Reverse? <input type="checkbox" name="reverse" id="reverse" value="true"/> |
Reverse? <input type="checkbox" name="reverse" id="reverse" checked="true"/> |
<input type="button" onclick="javascript:submit()" name="mysubmit" value="Submit!"> |
<input type="button" onclick="javascript:submitBetween()" value="Submit!"> |
<input type="button" value="Clear" onclick="javascript:clearForms()" title="Start clearForms() JavaScript function"> |
<input type="button" value="Clear" onclick="javascript:clearForms()" title="Start clearForms() JavaScript function"> |
<br> |
<br> |
<textarea id="between_points" rows="1" cols="120"></textarea> |
<textarea name="between_points" id="between_points" rows="1" cols="120"></textarea> |
</form> |
</form> |
<br><div id="response"> |
<div id="response"> |
<!-- Our message will be echoed out here --> |
<!-- Our message will be echoed out here --> |
</div> |
</div> |
</div> |
</div> |
<div id="map" width="100%" height="100%"></div> |
<div id="map" width="100%" height="100%"></div> |
</body> |
</body> |
</html> |
</html> |
|
|
|
|