From: maxious Date: Fri, 14 Jan 2011 06:59:32 +0000 Subject: Add and Remove operations for between stops X-Git-Url: https://maxious.lambdacomplex.org/git/?p=bus.git&a=commitdiff&h=82961fe73133b9e7176d3f042f9719ea325e94ad --- Add and Remove operations for between stops --- --- /dev/null +++ b/betweenpoint.add.php @@ -1,1 +1,50 @@ +"); + $sql = "INSERT INTO stops (geohash,lat,lng) VALUES ('$geoPo', '$nodelat', '$nodelon')"; + $result = pg_query($conn, $sql); + if (!$result) { + echo("Error in SQL query: " . pg_last_error() . "
\n"); + } else { + echo "Inserted new point at $geoPo
"; + } + } + flush(); +?> --- /dev/null +++ b/betweenpoint.delete.php @@ -1,1 +1,19 @@ - +\n"); + } else { + echo "Deleted {$_REQUEST['oldgeopo']}
"; + } + } + flush(); +?> --- /dev/null +++ b/betweenpoint.move.php @@ -1,1 +1,92 @@ - +"); + $sql = "UPDATE stops SET geohash='$geoPo', lat='$nodelat', lng='$nodelon', name=null, suburb=null WHERE geohash = '{$_REQUEST['oldgeopo']}'"; + $result = pg_query($conn, $sql); + if (!$result) { + echo("Error in SQL query: " . pg_last_error() . "
\n"); + } else if (pg_affected_rows($result) == 0) { + echo ("Error 0 points moved, please refresh page and try again"); + } else { + echo $_REQUEST['oldgeopo'] . " replaced with $geoPo
"; + $updatedroutes = 0; + $result_outdatedroutes = pg_query($conn, "Select * FROM between_stops where points LIKE '%" . $_REQUEST['oldgeopo'] . ";%'"); + while ($outdatedroute = pg_fetch_assoc($result_outdatedroutes)) { + $newpoints = str_replace($_REQUEST['oldgeopo'], $geoPo, $outdatedroute['points']); + $sql = "UPDATE between_stops set points='$newpoints' where fromlocation = '{$outdatedroute['fromlocation']}' AND tolocation = '{$outdatedroute['tolocation']}' "; + $result = pg_query($conn, $sql); + if (!$result) { + echo("Error in SQL query: " . pg_last_error() . "
\n"); + } + $updatedroutes++; + } + echo "updated $updatedroutes routes
"; + } + } + flush(); +?> --- 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/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 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(); +
+oldgeopo +newlatlng + + + +
--- a/busui/index.php +++ b/busui/index.php @@ -7,7 +7,7 @@ session_destroy(); if (isset($_REQUEST['service_period'])) $_SESSION['service_period'] = $_REQUEST['service_period']; if (isset($_REQUEST['time'])) $_SESSION['time'] = $_REQUEST['time']; - + // todo take in cellids and crossreference with http://realtimeblog.free.fr/latest/cellular/processed/sqlite/505_sqlite_zones.zip to estimate location include_header("bus.lambdacomplex.org",false, true) ?>
--- a/display.php +++ b/display.php @@ -18,7 +18,7 @@ // create the ol map object var map = new OpenLayers.Map('map', options); -var osmtiles = new OpenLayers.Layer.OSM("local", "http://localhost/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 var graphic = new OpenLayers.Layer.Image( 'Weekday Bus Map', --- a/maxious-canberra-transit-feed/04-locatebetweenpoints.osm.xml.php +++ b/maxious-canberra-transit-feed/04-locatebetweenpoints.osm.xml.php @@ -2,7 +2,7 @@ header('Content-Type: application/xml'); echo " "; $conn = pg_connect("dbname=openstreetmap user=postgres password=snmc"); --- a/maxious-canberra-transit-feed/04-locatebetweenpoints.reversegeocode.php +++ b/maxious-canberra-transit-feed/04-locatebetweenpoints.reversegeocode.php @@ -25,9 +25,8 @@ echo "Processing ".$stop['geohash'] . " streetname ... "; $url = "http://geocoding.cloudmade.com/daa03470bb8740298d4b10e3f03d63e6/geocoding/v2/find.js?around=".($stop['lat']/10000000).",".($stop['lng']/10000000)."&distance=closest&object_type=road"; $contents = json_decode(getPage($url)); - print_r($contents); + //print_r($contents); $name = $contents->features[0]->properties->name; - //todo suburb/locality select * from suburbs where the_geom @> 'POINT(149.075704592122 -35.21751569325)'::geometry echo "Saving $name !
" ; $result_save = pg_query($conn, "UPDATE stops set name = '".pg_escape_string($name)."' where geohash = '{$stop['geohash']}' "); if (!$result_save) {