Minor bus stop moving UI
Minor bus stop moving UI

--- /dev/null
+++ b/betweenpoint.move.php
@@ -1,1 +1,90 @@
-
+<?php
+  /*
+   * GeoPo Encode in PHP
+   * @author : Shintaro Inagaki
+   * @param $location (Array)
+   * @return $geopo (String)
+   */
+  function geopoEncode($lat, $lng)
+  {
+      // 64characters (number + big and small letter + hyphen + underscore)
+      $chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";
+      
+      $geopo = "";
+      $scale = 7;
+      
+      // Change a degree measure to a decimal number
+      $lat = ($lat + 90) / 180 * pow(8, 10);
+      $lng = ($lng + 180) / 360 * pow(8, 10);
+      // Compute a GeoPo code from head and concatenate
+      for ($i = 0; $i < $scale; $i++) {
+          $geopo .= substr($chars, floor($lat / pow(8, 9 - $i) % 8) + floor($lng / pow(8, 9 - $i) % 8) * 8, 1);
+      }
+      return $geopo;
+  }
+  
+  /*
+   * GeoPo Decode in PHP
+   * @author : Shintaro Inagaki
+   * @param $geopo (String)
+   * @return $location (Array)
+   */
+  function geopoDecode($geopo)
+  {
+      // 64characters (number + big and small letter + hyphen + underscore)
+      $chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";
+      // Array for geolocation
+      $location = array();
+      
+      for ($i = 0; $i < strlen($geopo); $i++) {
+          // What number of character that equal to a GeoPo code (0-63)
+          $order = strpos($chars, substr($geopo, $i, 1));
+          // Lat/Lng plus geolocation value of scale 
+          $location['lat'] = $location['lat'] + floor($order % 8) * pow(8, 9 - $i);
+          $location['lng'] = $location['lng'] + floor($order / 8) * pow(8, 9 - $i);
+      }
+      
+      // Change a decimal number to a degree measure, and plus revised value that shift center of area
+      $location['lat'] = $location['lat'] * 180 / pow(8, 10) + 180 / pow(8, strlen($geopo)) / 2 - 90;
+      $location['lng'] = $location['lng'] * 360 / pow(8, 10) + 360 / pow(8, strlen($geopo)) / 2 - 180;
+      $location['scale'] = strlen($geopo);
+      
+      return $location;
+  }
+  
+  $conn = pg_connect("dbname=bus user=postgres password=snmc");
+  if (!$conn) {
+      echo "An error occured.\n";
+      exit;
+  }
+  if ($_REQUEST['newlatlng']) {
+      $latlng = explode(";", $_REQUEST['newlatlng']);
+      $lat = (float)$latlng[0];
+      $lng = (float)$latlng[1];
+      
+      $geoPo = geopoEncode($lat, $lng);
+      $nodelat = (int)($lat * 10000000);
+      $nodelon = (int)($lng * 10000000);
+      echo($nodelat . "," . $nodelon . "=$geoPo<br>");
+      $sql = "UPDATE stops SET geohash='$geoPo', lat='$nodelat', lng='$nodelon' WHERE geohash = '{$_REQUEST['oldgeopo']}'";
+      $result = pg_query($conn, $sql);
+      if (!$result) {
+          echo("Error in SQL query: " . pg_last_error() . "<br>\n");
+      } else {
+      echo $_REQUEST['oldgeopo'] . " replaced with $geoPo <br>";
+      $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() . "<br>\n");
+          }
+          $updatedroutes++;
+      }
+      echo "updated $updatedroutes routes<br>";
+      }
+  }
+  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();
 <?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
@@ -178,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>

--- 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)
 ?>
 <div data-role="page" data-theme="b" id="jqm-home" class="ui-page ui-body-b ui-page-active">

--- a/maxious-canberra-transit-feed/04-locatebetweenpoints.reversegeocode.php
+++ b/maxious-canberra-transit-feed/04-locatebetweenpoints.reversegeocode.php
@@ -21,7 +21,8 @@
 	echo("Error in SQL query: " . pg_last_error() ."<br>\n");
      }
      while ($stop = pg_fetch_assoc($result_stops)) {
-      echo "Processing ".$stop['geohash'] . " ... ";
+	if ($stop['name'] == "") {
+      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);
@@ -31,8 +32,25 @@
       $result_save = pg_query($conn, "UPDATE stops set name = '".pg_escape_string($name)."' where geohash = '{$stop['geohash']}' ");
 			      if (!$result_save) {
 	echo("Error in SQL query: " . pg_last_error() ."<br>\n");
+			      }
+	}
+	if ($stop['suburb'] == "") {
+      echo "Processing ".$stop['geohash'] . " suburb ... ";
+	$sql = "select * from suburbs where the_geom @> 'POINT(".($stop['lng']/10000000)." ".($stop['lat']/10000000).")'::geometry";
+     $result_suburbs = pg_query($conn, $sql);
+     if (!$result_suburbs) {
+	echo("Error in SQL query: " . pg_last_error() ."<br>\n");
      }
-     die();
+     $suburbs = "";
+     while ($suburb = pg_fetch_assoc($result_suburbs)) {
+	$suburbs .= $suburb['name_2006'].";";
+     }
+      echo "Saving $suburbs ! <br>" ;
+      $result_save = pg_query($conn, "UPDATE stops set suburb = '".pg_escape_string($suburbs)."' where geohash = '{$stop['geohash']}' ");
+			      if (!$result_save) {
+	echo("Error in SQL query: " . pg_last_error() ."<br>\n");
+			      }
+     }
      flush();
      }
 

--- a/maxious-canberra-transit-feed/validate.sh
+++ b/maxious-canberra-transit-feed/validate.sh
@@ -1,2 +1,2 @@
-python ../origin-src/transitfeed-1.2.5/feedvalidator.py -l 9999 cbrfeed.zip
+python ../origin-src/transitfeed-1.2.6/feedvalidator.py -l 9999 cbrfeed.zip
 

--- a/maxious-canberra-transit-feed/validation-results.html
+++ b/maxious-canberra-transit-feed/validation-results.html
@@ -28,109 +28,127 @@
 <br><br>
 <table>
 <tr><th class="header">Agencies:</th><td class="header"><a href="http://www.action.act.gov.au/">ACT Internal Omnibus Network (ACTION)</a></td></tr>
-<tr><th class="header">Routes:</th><td class="header">256</td></tr>
-<tr><th class="header">Stops:</th><td class="header">230</td></tr>
-<tr><th class="header">Trips:</th><td class="header">4133</td></tr>
+<tr><th class="header">Routes:</th><td class="header">263</td></tr>
+<tr><th class="header">Stops:</th><td class="header">381</td></tr>
+<tr><th class="header">Trips:</th><td class="header">4207</td></tr>
 <tr><th class="header">Shapes:</th><td class="header">0</td></tr>
-<tr><th class="header">Effective:</th><td class="header">May 25, 2009 to October 01, 2010</td></tr>
+<tr><th class="header">Effective:</th><td class="header">November 15, 2010 to December 31, 2011</td></tr>
 </table>
-
+<br>
+During the upcoming service dates Mon Dec 27 to Thu Feb 24:
+<table>
+<tr><th class="header">Average trips per date:</th><td class="header">2169</td></tr>
+<tr><th class="header">Most trips on a date:</th><td class="header">2681, on 44 service dates (Mon Dec 27, Tue Dec 28, Wed Dec 29, ...)</td></tr>
+<tr><th class="header">Least trips on a date:</th><td class="header">614, on 8 service dates (Sun Jan 02, Sun Jan 09, Sun Jan 16, ...)</td></tr>
+</table>
 <br>
 <span class="fail">
-A new version 1.2.6 of transitfeed is available. Please visit http://code.google.com/p/googletransitdatafeed and download.</span><br><br><span class="fail">Found these problems:</span>
+We failed to reach transitfeed server. Reason: [Errno -2] Name or service not known.</span><br><br><span class="fail">Found these problems:</span>
 <table class="count_outside">
-<tr><td><span class="fail">70 warnings</span></td></tr>
+<tr><td><span class="fail">85 warnings</span></td></tr>
 <tr><td>
-<table><tr><td>1</td><td><a href="#WarningExpirationDate">Expiration Date</a></td></tr>
-<tr><td>57</td><td><a href="#WarningInvalidValue">Invalid Values</a></td></tr>
-<tr><td>4</td><td><a href="#WarningOtherProblem">Other Problems</a></td></tr>
-<tr><td>8</td><td><a href="#WarningStopsTooClose">Stops Too Closes</a></td></tr>
+<table><tr><td>59</td><td><a href="#WarningInvalidValue">Invalid Values</a></td></tr>
+<tr><td>20</td><td><a href="#WarningOtherProblem">Other Problems</a></td></tr>
+<tr><td>6</td><td><a href="#WarningStopsTooClose">Stops Too Closes</a></td></tr>
 </table>
 </td>
 </table>
 <br><br>
-<h3 class="issueHeader">Warnings:</h3><h4 class="issueHeader"><a name="WarningExpirationDate">Expiration Date</a></h4><ul>
-<li><div class="problem">This feed expired on October 01, 2010</div><br></li>
-</ul>
-<h4 class="issueHeader"><a name="WarningInvalidValue">Invalid Value</a></h4><ul>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "217" and "216".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "215" and "214".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "213" and "212".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "211" and "210".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "219" and "218".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "138" and "137".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "222" and "223".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "198" and "199".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "190" and "191".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "193" and "194".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "140" and "139".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "226" and "227".</div><br></li>
-<li><div class="problem">Invalid value to cameron ave bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "146" and "145".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "244" and "245".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "240" and "241".</div><br></li>
-<li><div class="problem">Invalid value to lithgow st terminus fyshwick in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "242" and "243".</div><br></li>
-<li><div class="problem">Invalid value to bimberi centre in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "246" and "247".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "177" and "178".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "175" and "176".</div><br></li>
-<li><div class="problem">Invalid value to cooleman court in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "173" and "174".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "172" and "171".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "253" and "252".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "248" and "249".</div><br></li>
-<li><div class="problem">Invalid value to city interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "180" and "179".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "181" and "182".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "184" and "183".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "188" and "187".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "196" and "195".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "221" and "220".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "185" and "186".</div><br></li>
-<li><div class="problem">Invalid value to cameron ave bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "142" and "141".</div><br></li>
-<li><div class="problem">Invalid value to cooleman court in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "169" and "170".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "228" and "229".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "166" and "165".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "167" and "168".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "162" and "161".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "163" and "164".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "224" and "225".</div><br></li>
-<li><div class="problem">Invalid value to cameron ave bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "152" and "151".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "154" and "153".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "156" and "155".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "159" and "160".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "158" and "157".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "239" and "238".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "235" and "234".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "237" and "236".</div><br></li>
-<li><div class="problem">Invalid value to tuggeranong interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "231" and "230".</div><br></li>
-<li><div class="problem">Invalid value to woden interchange in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "233" and "232".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "200" and "201".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "202" and "203".</div><br></li>
-<li><div class="problem">Invalid value to gungahlin market place in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "204" and "205".</div><br></li>
-<li><div class="problem">Invalid value to cohen st bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "206" and "207".</div><br></li>
-<li><div class="problem">Invalid value to gungahlin market place in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "208" and "209".</div><br></li>
-<li><div class="problem">Invalid value to cameron ave bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "148" and "147".</div><br></li>
-<li><div class="problem">Invalid value to cameron ave bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "149" and "150".</div><br></li>
-<li><div class="problem">Invalid value to cameron ave bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "144" and "143".</div><br></li>
-<li><div class="problem">Invalid value to alexander maconochie centre hume in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "250" and "251".</div><br></li>
+<h3 class="issueHeader">Warnings:</h3><h4 class="issueHeader"><a name="WarningInvalidValue">Invalid Value</a></h4><ul>
+<li><div class="problem">Invalid value to woden bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "220" and "139".</div><br></li>
+<li><div class="problem">Invalid value to tuggeranong bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "129" and "95".</div><br></li>
+<li><div class="problem">Invalid value to alexander maconochie centre in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "114" and "136".</div><br></li>
+<li><div class="problem">Invalid value to city bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "88" and "51".</div><br></li>
+<li><div class="problem">Invalid value to cohen street bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "111" and "27".</div><br></li>
+<li><div class="problem">Invalid value to tuggeranong bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "82" and "110".</div><br></li>
+<li><div class="problem">Invalid value to tuggeranong bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "174" and "67".</div><br></li>
+<li><div class="problem">Invalid value to city bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "141" and "212".</div><br></li>
+<li><div class="problem">Invalid value to gungahlin marketplace in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "146" and "191".</div><br></li>
+<li><div class="problem">Invalid value to woden bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "92" and "7".</div><br></li>
+<li><div class="problem">Invalid value to cooleman court in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "109" and "126".</div><br></li>
+<li><div class="problem">Invalid value to belconnen community bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "106" and "112".</div><br></li>
+<li><div class="problem">Invalid value to woden bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "32" and "118".</div><br></li>
+<li><div class="problem">Invalid value to belconnen community bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "35" and "120".</div><br></li>
+<li><div class="problem">Invalid value to tuggeranong bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "94" and "56".</div><br></li>
+<li><div class="problem">Invalid value to cohen street bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "252" and "69".</div><br></li>
+<li><div class="problem">Invalid value to city bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "61" and "102".</div><br></li>
+<li><div class="problem">Invalid value to bimberi centre in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "259" and "63".</div><br></li>
+<li><div class="problem">Invalid value to city bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "65" and "26".</div><br></li>
+<li><div class="problem">Invalid value to city bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "256" and "179".</div><br></li>
+<li><div class="problem">Invalid value to cohen street bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "253" and "125".</div><br></li>
+<li><div class="problem">Invalid value to woden bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "182" and "226".</div><br></li>
+<li><div class="problem">Invalid value to woden bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "183" and "8".</div><br></li>
+<li><div class="problem">Invalid value to city bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "180" and "216".</div><br></li>
+<li><div class="problem">Invalid value to woden bus station in field <code>route_long_name</code><br>The same combination of route_short_name and route_long_name shouldn't be used for more than one route, as it is for the for the two routes with IDs "181" and "22