--- a/betweenpoint.php +++ b/betweenpoint.php @@ -10,11 +10,46 @@ // create the ol map object 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://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 markers = new OpenLayers.Layer.Markers("Between Stop Markers"); - + //hanlde mousedown on regions that are not points by reporting latlng +OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { + defaultHandlerOptions: { + 'single': true, + 'double': false, + 'pixelTolerance': 0, + 'stopSingle': false, + 'stopDouble': false + }, + + initialize: function(options) { + this.handlerOptions = OpenLayers.Util.extend( + {}, this.defaultHandlerOptions + ); + OpenLayers.Control.prototype.initialize.apply( + this, arguments + ); + this.handler = new OpenLayers.Handler.Click( + this, { + 'click': this.trigger + }, this.handlerOptions + ); + }, + + trigger: function(e) { + var lonlat = map.getLonLatFromViewPortPx(e.xy).transform( + new OpenLayers.Projection("EPSG:900913"), + new OpenLayers.Projection("EPSG:4326") + ); + $('form input[name="newlatlng"]').val(lonlat.lat + ";" + lonlat.lon ); + } + + }); + var click = new OpenLayers.Control.Click(); + map.addControl(click); + click.activate(); <?php $conn = pg_connect("dbname=bus user=postgres password=snmc"); if (!$conn) { @@ -34,7 +69,9 @@ marker.id="' . $stop['geohash'] . '"; markers.addMarker(marker); marker.events.register("mousedown", marker, function() { + document.getElementById("between_points").innerHTML += this.id+";"; +$(\'form input[name="oldgeopo"]\').val(this.id); }); '; } @@ -55,7 +92,12 @@ return false; }); }; - +function submitMove () { + $.post("betweenpoint.move.php", $("#moveform").serialize(), function(html){ + $("#response").html(html); + return false; + }); +}; function OnChange(dropdown) { var myindex = dropdown.selectedIndex @@ -64,6 +106,7 @@ fromto = selValue.split(":",2)[1]; $("#from").val(fromto.split("->",2)[0]); $("#to").val(fromto.split("->",2)[1]); + document.getElementById("between_points").innerHTML = ""; return true; } @@ -126,9 +169,11 @@ 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"]); + $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"] . ";"; + $key = trim($timetable["time_points"][$i]) . "->" . trim($timetable["time_points"][$i + 1]); + if (strstr($paths[$key],";" . $timetable["short_name"] . ";") === false) + @$paths[$key] .= $timetable["short_name"] . ";"; } } } @@ -138,9 +183,12 @@ $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']); - } - + $key = trim($path['fromlocation']) . "->" . trim($path['tolocation']); + $completedPaths[$key].= 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"; @@ -149,12 +197,14 @@ $incompleteRoutes = ""; foreach (explode(";", $routes) as $route) { - if (!in_array($route,$completedRoutes)) { + if (!in_array($route,$completedRoutes) && strstr($incompleteRoutes,';'.$route.';') === false) { $incompleteRoutes .= $route.';'; } } - if ($incompleteRoutes != "") echo "<option value=\"$incompleteRoutes:$path\">" . sizeof(explode(";", $incompleteRoutes)) . " $path</option>\n"; + if ($incompleteRoutes != "") { + echo "<option value=\"$incompleteRoutes:$path\">" . sizeof(explode(";", $incompleteRoutes)) . " $path</option>\n"; + } } } @@ -170,6 +220,12 @@ <br> <textarea name="between_points" id="between_points" rows="1" cols="120"></textarea> </form> + <form id="moveform"> +oldgeopo <input type="text" name="oldgeopo" id="oldgeopo"/> +newlatlng <input type="text" name="newlatlng" id="newlatlng" size="60"/> + <input type="button" onclick="javascript:submitMove()" value="Move!"> + +</form> <div id="response"> <!-- Our message will be echoed out here --> </div>