Use local green pin and upgrade jquery mobile to alpha 3
Use local green pin and upgrade jquery mobile to alpha 3

<
<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://10.0.1.154/tiles/${z}/${x}/${y}.png") var osmtiles = new OpenLayers.Layer.OSM("local", "http://10.0.1.154/tiles/${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");
//hanlde mousedown on regions that are not points by reporting latlng //hanlde mousedown on regions that are not points by reporting latlng
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: { defaultHandlerOptions: {
'single': true, 'single': true,
'double': false, 'double': false,
'pixelTolerance': 0, 'pixelTolerance': 0,
'stopSingle': false, 'stopSingle': false,
'stopDouble': false 'stopDouble': false
}, },
initialize: function(options) { initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend( this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions {}, this.defaultHandlerOptions
); );
OpenLayers.Control.prototype.initialize.apply( OpenLayers.Control.prototype.initialize.apply(
this, arguments this, arguments
); );
this.handler = new OpenLayers.Handler.Click( this.handler = new OpenLayers.Handler.Click(
this, { this, {
'click': this.trigger 'click': this.trigger
}, this.handlerOptions }, this.handlerOptions
); );
}, },
trigger: function(e) { trigger: function(e) {
var lonlat = map.getLonLatFromViewPortPx(e.xy).transform( var lonlat = map.getLonLatFromViewPortPx(e.xy).transform(
new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:900913"),
new OpenLayers.Projection("EPSG:4326") new OpenLayers.Projection("EPSG:4326")
); );
$('form input[name="newlatlng"]').val(lonlat.lat + ";" + lonlat.lon ); $('form input[name="newlatlng"]').val(lonlat.lat + ";" + lonlat.lon );
} }
}); });
var click = new OpenLayers.Control.Click(); var click = new OpenLayers.Control.Click();
map.addControl(click); map.addControl(click);
click.activate(); click.activate();
<?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+";";
$(\'form input[name="oldgeopo"]\').val(this.id); $(\'form input[name="oldgeopo"]\').val(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("icong.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>
<script type="text/javascript"> <script type="text/javascript">
function submitBetween () { function submitBetween () {
$.post("betweenpoint.submit.php", $("#inputform").serialize(), function(html){ $.post("betweenpoint.submit.php", $("#inputform").serialize(), function(html){
$("#response").html(html); $("#response").html(html);
clearForms(); clearForms();
return false; return false;
}); });
}; };
function submitMove () { function submitMove () {
$.post("betweenpoint.move.php", $("#moveform").serialize(), function(html){ $.post("betweenpoint.move.php", $("#moveform").serialize(), function(html){
$("#response").html(html); $("#response").html(html);
clearForms(); clearForms();
return false; return false;
}); });
}; };
function submitDelete () { function submitDelete () {
$.post("betweenpoint.delete.php", $("#moveform").serialize(), function(html){ $.post("betweenpoint.delete.php", $("#moveform").serialize(), function(html){
$("#response").html(html); $("#response").html(html);
clearForms(); clearForms();
return false; return false;
}); });
}; };
function submitAdd () { function submitAdd () {
$.post("betweenpoint.add.php", $("#moveform").serialize(), function(html){ $.post("betweenpoint.add.php", $("#moveform").serialize(), function(html){
$("#response").html(html); $("#response").html(html);
clearForms(); clearForms();
return false; return false;
}); });
}; };
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;
$("#routes").val(selValue.split(":",2)[0]); $("#routes").val(selValue.split(":",2)[0]);
fromto = selValue.split(":",2)[1]; fromto = selValue.split(":",2)[1];
$("#from").val(fromto.split("->",2)[0]); $("#from").val(fromto.split("->",2)[0]);
$("#to").val(fromto.split("->",2)[1]); $("#to").val(fromto.split("->",2)[1]);
document.getElementById("between_points").innerHTML = ""; document.getElementById("between_points").innerHTML = "";
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 = true; 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) { if ($dhandle) {
// loop through all of the files // loop through all of the files
while (false !== ($fname = readdir($dhandle))) { while (false !== ($fname = readdir($dhandle))) {
if (($fname != '.') && ($fname != '..')) { if (($fname != '.') && ($fname != '..')) {
$timetable = Spyc::YAMLLoad("maxious-canberra-transit-feed/output/" . $fname); $timetable = Spyc::YAMLLoad("maxious-canberra-transit-feed/output/" . $fname);
// Strip off individual platforms because it usually doesn't matter for routes // Strip off individual platforms because it usually doesn't matter for routes
$timetable["time_points"] = preg_replace("/\(Platform.*/","",$timetable["time_points"]); $timetable["time_points"] = preg_replace("/\(Platform.*/","",$timetable["time_points"]);
for ($i = 0; $i < sizeof($timetable["time_points"]) - 1; $i++) { for ($i = 0; $i < sizeof($timetable["time_points"]) - 1; $i++) {
$key = trim($timetable["time_points"][$i]) . "->" . trim($timetable["time_points"][$i + 1]); $key = trim($timetable["time_points"][$i]) . "->" . trim($timetable["time_points"][$i + 1]);
if (strstr($paths[$key],";" . $timetable["short_name"] . ";") === false) if (strstr($paths[$key],";" . $timetable["short_name"] . ";") === false)
@$paths[$key] .= $timetable["short_name"] . ";"; @$paths[$key] .= $timetable["short_name"] . ";";
} }
} }
} }
} }