Add suburb geocode to timingpoints tables too
Add suburb geocode to timingpoints tables too

#!/usr/bin/ruby #!/usr/bin/ruby
   
require 'highline.rb' require 'highline.rb'
include HighLine include HighLine
   
require 'rubygems' require 'rubygems'
require 'postgres' require 'postgres'
require 'json' require 'json'
require 'yaml' require 'yaml'
require 'pp' require 'pp'
# make - { name: Civic Interchange Platform 1,stop_code: civic_platform_1, lat: -35.2794347, lng: 149.130588} # make - { name: Civic Interchange Platform 1,stop_code: civic_platform_1, lat: -35.2794347, lng: 149.130588}
connbus = PGconn.connect("localhost", 5432, '', '', "bus", "postgres", "snmc") connbus = PGconn.connect("localhost", 5432, '', '', "bus", "postgres", "snmc")
   
f = File.open('cbrtable.yml.in.in') f = File.open('cbrtable.yml.in.in')
header = f.readlines header = f.readlines
f.close f.close
   
File.open('cbrtable.yml.in', 'w') do |f2| File.open('cbrtable.yml.in', 'w') do |f2|
f2.puts header f2.puts header
f2.puts "stops:\n"; f2.puts "stops:\n";
begin begin
time_points = connbus.exec("SELECT * from timing_point ORDER BY name") time_points = connbus.exec("SELECT * from timing_point ORDER BY name")
rescue PGError => e rescue PGError => e
puts "Error reading from DB #{e}" puts "Error reading from DB #{e}"
#conn.close() if conn #conn.close() if conn
end end
time_points.each do |time_point| time_points.each do |time_point|
#pp time_point #pp time_point
# 0 = name # 0 = name
# 1 = lat*100000 # 1 = lat*100000
# 2 = lng*100000 # 2 = lng*100000
  # 7 = suburb(s)
#pp time_point[0] #pp time_point[0]
f2.puts " - { name: #{time_point[0]},stop_code: #{time_point[0]}, lat: #{Float(time_point[1])/10000000}, lng: #{Float(time_point[2])/10000000}}" f2.puts " - { name: #{time_point[0]},stop_code: #{time_point[0]}, lat: #{Float(time_point[1])/10000000}, lng: #{Float(time_point[2])/10000000}, zone_id: #{time_point[7]} }"
end end
begin begin
stops = connbus.exec("SELECT * from stops") stops = connbus.exec("SELECT * from stops")
rescue PGError => e rescue PGError => e
puts "Error reading from DB #{e}" puts "Error reading from DB #{e}"
#conn.close() if conn #conn.close() if conn
end end
stops.each do |stop| stops.each do |stop|
#pp stop #pp stop
# 0 = geoPo # 0 = geoPo
# 1 = lat*100000 # 1 = lat*100000
# 2 = lng*100000 # 2 = lng*100000
# 3 = name # 3 = name
# 4 = suburb(s) # 4 = suburb(s)
#pp time_point[0] #pp time_point[0]
f2.puts " - { name: #{stop[3]},stop_code: #{stop[0]}, lat: #{Float(stop[1])/10000000}, lng: #{Float(stop[2])/10000000}, zone_id: #{stop[4]} }" f2.puts " - { name: #{stop[3]},stop_code: #{stop[0]}, lat: #{Float(stop[1])/10000000}, lng: #{Float(stop[2])/10000000}, zone_id: #{stop[4]} }"
end end
f2.puts "routes:\n"; f2.puts "routes:\n";
end end
   
   
<?php <?php
function getPage($url) function getPage($url)
{ {
$ch = curl_init($url); $ch = curl_init($url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_HEADER, 0 ); curl_setopt( $ch, CURLOPT_HEADER, 0 );
$page = curl_exec($ch); $page = curl_exec($ch);
curl_close($ch); curl_close($ch);
return $page; return $page;
} }
// //
// http://developers.cloudmade.com/wiki/geocoding-http-api/Documentation // http://developers.cloudmade.com/wiki/geocoding-http-api/Documentation
$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;
} }
  echo "reverse geocode stops<br>";
$sql = "Select * from stops where name is null or suburb is null"; $sql = "Select * from stops where name is null or suburb is null";
$result_stops = pg_query($conn, $sql); $result_stops = pg_query($conn, $sql);
if (!$result_stops) { if (!$result_stops) {
echo("Error in SQL query: " . pg_last_error() ."<br>\n"); echo("Error in SQL query: " . pg_last_error() ."<br>\n");
} }
while ($stop = pg_fetch_assoc($result_stops)) { while ($stop = pg_fetch_assoc($result_stops)) {
if ($stop['name'] == "") { if ($stop['name'] == "") {
echo "Processing ".$stop['geohash'] . " streetname ... "; 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"; $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)); $contents = json_decode(getPage($url));
//print_r($contents); //print_r($contents);
$name = $contents->features[0]->properties->name; $name = $contents->features[0]->properties->name;
echo "Saving $name ! <br>" ; echo "Saving $name ! <br>" ;
$result_save = pg_query($conn, "UPDATE stops set name = '".pg_escape_string($name)."' where geohash = '{$stop['geohash']}' "); $result_save = pg_query($conn, "UPDATE stops set name = '".pg_escape_string($name)."' where geohash = '{$stop['geohash']}' ");
if (!$result_save) { if (!$result_save) {
echo("Error in SQL query: " . pg_last_error() ."<br>\n"); echo("Error in SQL query: " . pg_last_error() ."<br>\n");
} }
} }
if ($stop['suburb'] == "") { if ($stop['suburb'] == "") {
echo "Processing ".$stop['geohash'] . " suburb ... "; echo "Processing ".$stop['geohash'] . " suburb ... ";
$sql = "select * from suburbs where the_geom @> 'POINT(".($stop['lng']/10000000)." ".($stop['lat']/10000000).")'::geometry"; $sql = "select * from suburbs where the_geom @> 'POINT(".($stop['lng']/10000000)." ".($stop['lat']/10000000).")'::geometry";
$result_suburbs = pg_query($conn, $sql); $result_suburbs = pg_query($conn, $sql);
if (!$result_suburbs) { if (!$result_suburbs) {
echo("Error in SQL query: " . pg_last_error() ."<br>\n"); echo("Error in SQL query: " . pg_last_error() ."<br>\n");
} }
$suburbs = ""; $suburbs = "";
while ($suburb = pg_fetch_assoc($result_suburbs)) { while ($suburb = pg_fetch_assoc($result_suburbs)) {
$suburbs .= $suburb['name_2006'].";"; $suburbs .= $suburb['name_2006'].";";
} }
echo "Saving $suburbs ! <br>" ; echo "Saving $suburbs ! <br>" ;
$result_save = pg_query($conn, "UPDATE stops set suburb = '".pg_escape_string($suburbs)."' where geohash = '{$stop['geohash']}' "); $result_save = pg_query($conn, "UPDATE stops set suburb = '".pg_escape_string($suburbs)."' where geohash = '{$stop['geohash']}' ");
if (!$result_save) { if (!$result_save) {
echo("Error in SQL query: " . pg_last_error() ."<br>\n"); echo("Error in SQL query: " . pg_last_error() ."<br>\n");
} }
} }
flush(); flush();
} }
  echo "reverse geocode timing points<br>";
  $sql = "Select * from timing_point where suburb is null";
  $result_timingpoints = pg_query($conn, $sql);
  if (!$result_timingpoints) {
  echo("Error in SQL query: " . pg_last_error() ."<br>\n");
  }
  while ($timingpoint = pg_fetch_assoc($result_timingpoints)) {
  if ($timingpoint['suburb'] == "") {
  echo "Processing ".$timingpoint['name'] . " suburb ... ";
  $sql = "select * from suburbs where the_geom @> 'POINT(".($timingpoint['lng']/10000000)." ".($timingpoint['lat']/10000000).")'::geometry";
  $result_suburbs = pg_query($conn, $sql);
  if (!$result_suburbs) {
  echo("Error in SQL query: " . pg_last_error() ."<br>\n");
  }
  $suburbs = "";
  while ($suburb = pg_fetch_assoc($result_suburbs)) {
  $suburbs .= $suburb['name_2006'].";";
  }
  echo "Saving $suburbs ! <br>" ;
  $result_save = pg_query($conn, "UPDATE timing_point set suburb = '".pg_escape_string($suburbs)."' where name = '".pg_escape_string($timingpoint['name'])."'");
  if (!$result_save) {
  echo("Error in SQL query: " . pg_last_error() ."<br>\n");
  }
  }
  flush();
  }
   
?> ?>
   
   
options: options:
start_date: 20101115 start_date: 20101115
end_date: 20111231 end_date: 20111231
remove_date: 20111231 remove_date: 20111231
agency_name: ACT Internal Omnibus Network (ACTION) agency_name: ACT Internal Omnibus Network (ACTION)
agency_url: http://www.action.act.gov.au/ agency_url: http://www.action.act.gov.au/
agency_timezone: Australia/Sydney agency_timezone: Australia/Sydney
  agency_phone: 131710
  agency_lang: en
   
stops: stops:
- { name: ACTEW AGL House,stop_code: ACTEW AGL House, lat: -35.282374, lng: 149.132047} - { name: ACTEW AGL House,stop_code: ACTEW AGL House, lat: -35.282374, lng: 149.132047, zone_id: Unclassified ACT;City; }
- { name: ADFA,stop_code: ADFA, lat: -35.2937972, lng: 149.1643403} - { name: ADFA,stop_code: ADFA, lat: -35.2937972, lng: 149.1643403, zone_id: Unclassified ACT;Campbell; }
- { name: Ainslie,stop_code: Ainslie, lat: -35.2620105, lng: 149.1443302} - { name: Ainslie,stop_code: Ainslie, lat: -35.2620105, lng: 149.1443302, zone_id: Unclassified ACT;Ainslie; }
- { name: Alexander Maconochie Centre,stop_code: Alexander Maconochie Centre, lat: -35.3720651, lng: 149.1696618} - { name: Alexander Maconochie Centre,stop_code: Alexander Maconochie Centre, lat: -35.3720651, lng: 149.1696618, zone_id: Unclassified ACT;Hume; }
- { name: Anthony Rolfe Av / Moonlight Av,stop_code: Anthony Rolfe Av / Moonlight Av, lat: -35.1856021, lng: 149.1543639} - { name: Anthony Rolfe Av / Moonlight Av,stop_code: Anthony Rolfe Av / Moonlight Av, lat: -35.1856021, lng: 149.1543639, zone_id: Unclassified ACT;Bonner;Gungahlin; }
- { name: Aranda,stop_code: Aranda, lat: -35.257534, lng: 149.0762963} - { name: Aranda,stop_code: Aranda, lat: -35.257534, lng: 149.0762963, zone_id: Unclassified ACT;Aranda;Bruce;Acton; }
- { name: Athllon / Sulwood Kambah,stop_code: Athllon / Sulwood Kambah, lat: -35.38442, lng: 149.09328} - { name: Athllon / Sulwood Kambah,stop_code: Athllon / Sulwood Kambah, lat: -35.38442, lng: 149.09328, zone_id: Wanniassa;Unclassified ACT; }
- { name: Australian Institute of Sport,stop_code: Australian Institute of Sport, lat: -35.246351, lng: 149.101478} - { name: Australian Institute of Sport,stop_code: Australian Institute of Sport, lat: -35.246351, lng: 149.101478, zone_id: Unclassified ACT;O'Connor;Bruce; }
- { name: Belconnen Community Bus Station,stop_code: Belconnen Community Bus Station, lat: -35.2398858, lng: 149.0690795} - { name: Belconnen Community Bus Station,stop_code: Belconnen Community Bus Station, lat: -35.2398858, lng: 149.0690795, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Community Bus Station (Platform 1),stop_code: Belconnen Community Bus Station (Platform 1), lat: -35.23982, lng: 149.06978} - { name: Belconnen Community Bus Station (Platform 1),stop_code: Belconnen Community Bus Station (Platform 1), lat: -35.23982, lng: 149.06978, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Community Bus Station (Platform 2),stop_code: Belconnen Community Bus Station (Platform 2), lat: -35.23982, lng: 149.06926} - { name: Belconnen Community Bus Station (Platform 2),stop_code: Belconnen Community Bus Station (Platform 2), lat: -35.23982, lng: 149.06926, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Community Bus Station (Platform 3),stop_code: Belconnen Community Bus Station (Platform 3), lat: -35.23986, lng: 149.06847} - { name: Belconnen Community Bus Station (Platform 3),stop_code: Belconnen Community Bus Station (Platform 3), lat: -35.23986, lng: 149.06847, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Community Bus Station (Platform 4),stop_code: Belconnen Community Bus Station (Platform 4), lat: -35.23994, lng: 149.06887} - { name: Belconnen Community Bus Station (Platform 4),stop_code: Belconnen Community Bus Station (Platform 4), lat: -35.23994, lng: 149.06887, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Community Bus Station (Platform 5),stop_code: Belconnen Community Bus Station (Platform 5), lat: -35.23994, lng: 149.06928} - { name: Belconnen Community Bus Station (Platform 5),stop_code: Belconnen Community Bus Station (Platform 5), lat: -35.23994, lng: 149.06928, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Community Bus Station (Platform 6),stop_code: Belconnen Community Bus Station (Platform 6), lat: -35.23994, lng: 149.0698} - { name: Belconnen Community Bus Station (Platform 6),stop_code: Belconnen Community Bus Station (Platform 6), lat: -35.23994, lng: 149.0698, zone_id: Unclassified ACT;Belconnen; }
- { name: Belconnen Way,stop_code: Belconnen Way, lat: -35.2410162, lng: 149.0409512} - { name: Belconnen Way,stop_code: Belconnen Way, lat: -35.2410162, lng: 149.0409512, zone_id: Scullin;Unclassified ACT;Hawker; }
- { name: Bimberi Centre,stop_code: Bimberi Centre, lat: -35.2219941, lng: 149.1546928} - { name: Bimberi Centre,stop_code: Bimberi Centre, lat: -35.2219941, lng: 149.1546928, zone_id: Unclassified ACT;Bonner; }
- { name: Black Mountain Telstra Tower,stop_code: Black Mountain Telstra Tower, lat: -35.2748058, lng: 149.0972461} - { name: Black Mountain Telstra Tower,stop_code: Black Mountain Telstra Tower, lat: -35.2748058, lng: 149.0972461, zone_id: Unclassified ACT;Acton; }
- { name: Bonython Primary School,stop_code: Bonython Primary School, lat: -35.4297416, lng: 149.0814517} - { name: Bonython Primary School,stop_code: Bonython Primary School, lat: -35.4297416, lng: 149.0814517, zone_id: Unclassified ACT;Bonython;Isabella Plains; }
- { name: Botanic Gardens,stop_code: Botanic Gardens, lat: -35.278643, lng: 149.1093237} - { name: Botanic Gardens,stop_code: Botanic Gardens, lat: -35.278643, lng: 149.1093237, zone_id: Unclassified ACT;Acton; }
- { name: Brindabella Business Park,stop_code: Brindabella Business Park, lat: -35.314496, lng: 149.189145} - { name: Brindabella Business Park,stop_code: Brindabella Business Park, lat: -35.314496, lng: 149.189145, zone_id: Unclassified ACT;Pialligo;Fyshwick; }
- { name: Brindabella Gardens Nursing Home,stop_code: Brindabella Gardens Nursing Home, lat: -35.3294459, lng: 149.0806116} - { name: Brindabella Gardens Nursing Home,stop_code: Brindabella Gardens Nursing Home, lat: -35.3294459, lng: 149.0806116, zone_id: Unclassified ACT;Curtin; }
- { name: Bugden Sternberg,stop_code: Bugden Sternberg, lat: -35.403233, lng: 149.1073117} - { name: Bugden Sternberg,stop_code: Bugden Sternberg, lat: -35.403233, lng: 149.1073117, zone_id: Unclassified ACT;Fadden;Gowrie; }
- { name: Burton and Garran Hall Daley Road,stop_code: Burton and Garran Hall Daley Road, lat: -35.2753671, lng: 149.1172822} - { name: Burton and Garran Hall Daley Road,stop_code: Burton and Garran Hall Daley Road, lat: -35.2753671, lng: 149.1172822, zone_id: Turner;Unclassified ACT;Acton; }
- { name: Calvary Hospital,stop_code: Calvary Hospital, lat: -35.25212, lng: 149.09088} - { name: Calvary Hospital,stop_code: Calvary Hospital, lat: -35.25212, lng: 149.09088, zone_id: Unclassified ACT;Bruce; }
- { name: Calwell,stop_code: Calwell, lat: -35.43524, lng: 149.113942} - { name: Calwell,stop_code: Calwell, lat: -35.43524, lng: 149.113942, zone_id: Unclassified ACT;Richardson;Calwell; }
- { name: Campbell Park Offices,stop_code: Campbell Park Offices, lat: -35.28368, lng: 149.17045} - { name: Campbell Park Offices,stop_code: Campbell Park Offices, lat: -35.28368, lng: 149.17045, zone_id: Unclassified ACT;Campbell; }
- { name: Canberra College Weston Campus,stop_code: Canberra College Weston Campus, lat: -35.3490278, lng: 149.0486277} - { name: Canberra College Weston Campus,stop_code: Canberra College Weston Campus, lat: -35.3490278, lng: 149.0486277, zone_id: Stirling;Unclassified ACT;Rivett;Chapman; }
- { name: Canberra Hospital,stop_code: Canberra Hospital, lat: -35.3459462, lng: 149.1012001} - { name: Canberra Hospital,stop_code: Canberra Hospital, lat: -35.3459462, lng: 149.1012001, zone_id: Unclassified ACT;O'Malley;Garran; }
- { name: Canberra Times,stop_code: Canberra Times, lat: -35.3245431, lng: 149.1705533} - { name: Canberra Times,stop_code: Canberra Times, lat: -35.3245431, lng: 149.1705533, zone_id: Unclassified ACT;Fyshwick; }
- { name: Caswell Drive,stop_code: Caswell Drive, lat: -35.25922, lng: 149.08576} - { name: Caswell Drive,stop_code: Caswell Drive, lat: -35.25922, lng: 149.08576, zone_id: Unclassified ACT;Aranda;Bruce;Acton; }
- { name: Causeway,stop_code: Causeway, lat: -35.31615, lng: 149.15058} - { name: Causeway,stop_code: Causeway, lat: -35.31615, lng: 149.15058, zone_id: Unclassified ACT;Kingston;Barton;Fyshwick;Griffith; }
- { name: Centrelink Tuggeranong,stop_code: Centrelink Tuggeranong, lat: -35.4207496, lng: 149.0700973} - { name: Centrelink Tuggeranong,stop_code: Centrelink Tuggeranong, lat: -35.4207496, lng: 149.0700973, zone_id: Unclassified ACT;Greenway; }
- { name: Chapman,stop_code: Chapman, lat: -35.3557877, lng: 149.0408111} - { name: Chapman,stop_code: Chapman, lat: -35.3557877, lng: 149.0408111, zone_id: Unclassified ACT;Chapman; }
- { name: Charnwood,stop_code: Charnwood, lat: -35.2052138, lng: 149.0337266} - { name: Charnwood,stop_code: Charnwood, lat: -35.2052138, lng: 149.0337266, zone_id: Unclassified ACT;Charnwood; }
- { name: Chifley,stop_code: Chifley, lat: -35.3529713, lng: 149.0759413} - { name: Chifley,stop_code: Chifley, lat: -35.3529713, lng: 149.0759413, zone_id: Unclassified ACT;Chifley; }
- { name: Chisholm,stop_code: Chisholm, lat: -35.41341, lng: 149.1308079} - { name: Chisholm,stop_code: Chisholm, lat: -35.41341, lng: 149.1308079, zone_id: Unclassified ACT;Chisholm;Gilmore; }
- { name: Chuculba / William Slim Dr,stop_code: Chuculba / William Slim Dr, lat: -35.208931, lng: 149.088499} - { name: Chuculba / William Slim Dr,stop_code: Chuculba / William Slim Dr, lat: -35.208931, lng: 149.088499, zone_id: Unclassified ACT;Bonner;Giralang; }
- { name: CIT Weston,stop_code: CIT Weston, lat: -35.330234, lng: 149.058632} - { name: CIT Weston,stop_code: CIT Weston, lat: -35.330234, lng: 149.058632, zone_id: Weston;Unclassified ACT; }
- { name: City Bus Station,stop_code: City Bus Station, lat: -35.2794346, lng: 149.1305879} - { name: City Bus Station,stop_code: City Bus Station, lat: -35.2794346, lng: 149.1305879, zone_id: Unclassified ACT;City; }
- { name: City Bus Station (Platform 1),stop_code: City Bus Station (Platform 1), lat: -35.2794346, lng: 149.1305879} - { name: City Bus Station (Platform 1),stop_code: City Bus Station (Platform 1), lat: -35.2794346, lng: 149.1305879, zone_id: Unclassified ACT;City; }
- { name: City Bus Station (Platform 10),stop_code: City Bus Station (Platform 10), lat: -35.2793571, lng: 149.1293659} - { name: City Bus Station (Platform 10),stop_code: City Bus Station (Platform 10), lat: -35.2793571, lng: 149.1293659, zone_id: Unclassified ACT;City; }
- { name: City Bus Station (Platform 11),stop_code: City Bus Station (Platform 11), lat: -35.2787905, lng: 149.1288627} - { name: City Bus Station (Platform 11),stop_code: City Bus Station (Platform 11), lat: -35.2787905, lng: 149.1288627, zone_id: Unclassified ACT;City; }
- { name: City Bus Station (Platform 2),stop_code: City Bus Station (Platform 2), lat: -35.278907, lng: 149.130612} - { name: City Bus Station (Platform 2),stop_code: City Bus Station (Platform 2), lat: -35.278907, lng: 149.130612, zone_id: Unclassified ACT;Braddon;City; }
- { name: City Bus Station (Platform 3),stop_code: City Bus Station (Platform 3), lat: -35.2787886, lng: 149.1304779} - { name: City Bus Station (Platform 3),stop_code: City Bus Station (Platform 3), lat: -35.2787886, lng: 149.1304779, zone_id: Unclassified ACT;Braddon;City; }
- { name: City Bus Station (Platform 4),stop_code: City Bus Station (Platform 4), lat: -35.2785658, lng: 149.1301727} - { name: City Bus Station (Platform 4),stop_code: City Bus Station (Platform 4), lat: -35.2785658, lng: 149.1301727, zone_id: Unclassified ACT;Braddon;City; }
- { name: City Bus Station (Platform 5),stop_code: City Bus Station (Platform 5), lat: -35.2785242, lng: 149.1297348} - { name: City Bus Station (Platform 5),stop_code: City Bus Station (Platform 5), lat: -35.2785242, lng: 149.1297348, zone_id: Unclassified ACT;City; }
- { name: City Bus Station (Platform 7),stop_code: City Bus Station (Platform 7), lat: -35.27843, lng: 149.130345} - { name: City Bus Station (Platform 7),stop_code: City Bus Station (Platform 7), lat: -35.27843, lng: 149.130345, zone_id: Unclassified ACT;Braddon;City; }
- { name: City Bus Station (Platform 8),stop_code: City Bus Station (Platform 8), lat: -35.2778798, lng: 149.1305995} - { name: City Bus Station (Platform 8),stop_code: City Bus Station (Platform 8), lat: -35.2778798, lng: 149.1305995, zone_id: Unclassified ACT;Braddon;City; }
- { name: City Bus Station (Platform 9),stop_code: City Bus Station (Platform 9), lat: -35.2783224, lng: 149.130726} - { name: City Bus Station (Platform 9),stop_code: City Bus Station (Platform 9), lat: -35.2783224, lng: 149.130726, zone_id: Unclassified ACT;Braddon;City; }
- { name: City West,stop_code: City West, lat: -35.2788605, lng: 149.1257969} - { name: City West,stop_code: City West, lat: -35.2788605, lng: 149.1257969, zone_id: Unclassified ACT;City;Acton; }
- { name: Cohen Street Bus Station,stop_code: Cohen Street Bus Station, lat: -35.2394775, lng: 149.0602031} - { name: Cohen Street Bus Station,stop_code: Cohen Street Bus Station, lat: -35.2394775, lng: 149.0602031, zone_id: Unclassified ACT;Belconnen; }
- { name: Cohen Street Bus Station (Platform 1),stop_code: Cohen Street Bus Station (Platform 1), lat: -35.2394775, lng: 149.0602031} - { name: Cohen Street Bus Station (Platform 1),stop_code: Cohen Street Bus Station (Platform 1), lat: -35.2394775, lng: 149.0602031, zone_id: Unclassified ACT;Belconnen; }
- { name: Cohen Street Bus Station (Platform 2),stop_code: Cohen Street Bus Station (Platform 2), lat: -35.2396467, lng: 149.0602152} - { name: Cohen Street Bus Station (Platform 2),stop_code: Cohen Street Bus Station (Platform 2), lat: -35.2396467, lng: 149.0602152, zone_id: Unclassified ACT;Belconnen; }
- { name: Cohen Street Bus Station (Platform 3),stop_code: Cohen Street Bus Station (Platform 3), lat: -35.239764, lng: 149.0604531} - { name: Cohen Street Bus Station (Platform 3),stop_code: Cohen Street Bus Station (Platform 3), lat: -35.239764, lng: 149.0604531, zone_id: Unclassified ACT;Belconnen; }
- { name: Cohen Street Bus Station (Platform 4),stop_code: Cohen Street Bus Station (Platform 4), lat: -35.239844, lng: 149.0600683} - { name: Cohen Street Bus Station (Platform 4),stop_code: Cohen Street Bus Station (Platform 4), lat: -35.239844, lng: 149.0600683, zone_id: Unclassified ACT;Belconnen; }
- { name: Cohen Street Bus Station (Platform 5),stop_code: Cohen Street Bus Station (Platform 5), lat: -35.2401211, lng: 149.0597102} - { name: Cohen Street Bus Station (Platform 5),stop_code: Cohen Street Bus Station (Platform 5), lat: -35.2401211, lng: 149.0597102, zone_id: Unclassified ACT;Belconnen; }
- { name: Cohen Street Bus Station (Platform 6),stop_code: Cohen Street Bus Station (Platform 6), lat: -35.2400028, lng: 149.060315} - { name: Cohen Street Bus Station (Platform 6),stop_code: Cohen Street Bus Station (Platform 6), lat: -35.2400028, lng: 149.060315, zone_id: Unclassified ACT;Belconnen; }
- { name: Conder Primary,stop_code: Conder Primary, lat: -35.4643475, lng: 149.0986908} - { name: Conder Primary,stop_code: Conder Primary, lat: -35.4643475, lng: 149.0986908, zone_id: Unclassified ACT;Banks;Conder; }
- { name: Cook,stop_code: Cook, lat: -35.2596, lng: 149.0638} - { name: Cook,stop_code: Cook, lat: -35.2596, lng: 149.0638, zone_id: Unclassified ACT;Cook; }
- { name: Cooleman Court,stop_code: Cooleman Court, lat: -35.34147, lng: 149.05338} - { name: Cooleman Court,stop_code: Cooleman Court, lat: -35.34147, lng: 149.05338, zone_id: Weston;Unclassified ACT;Holder; }
- { name: Copland College,stop_code: Copland College, lat: -35.2127018, lng: 149.0596387} - { name: Copland College,stop_code: Copland College, lat: -35.2127018, lng: 149.0596387, zone_id: Unclassified ACT;Melba;Evatt; }
- { name: Curtin,stop_code: Curtin, lat: -35.3253034, lng: 149.0840838} - { name: Curtin,stop_code: Curtin, lat: -35.3253034, lng: 149.0840838, zone_id: Unclassified ACT;Curtin; }
- { name: Deakin,stop_code: Deakin, lat: -35.3151707, lng: 149.1084563} - { name: Deakin,stop_code: Deakin, lat: -35.3151707, lng: 149.1084563, zone_id: Yarralumla;Unclassified ACT;Deakin; }
- { name: Deamer / Clift Richardson,stop_code: Deamer / Clift Richardson, lat: -35.4294463, lng: 149.12} - { name: Deamer / Clift Richardson,stop_code: Deamer / Clift Richardson, lat: -35.4294463, lng: 149.12, zone_id: Unclassified ACT;Richardson;Chisholm; }
- { name: Dickson / Antill St,stop_code: Dickson / Antill St, lat: -35.2489, lng: 149.14012} - { name: Dickson / Antill St,stop_code: Dickson / Antill St, lat: -35.2489, lng: 149.14012, zone_id: Unclassified ACT;Lyneham;Dickson;Downer; }
- { name: Dickson College,stop_code: Dickson College, lat: -35.24923, lng: 149.15315} - { name: Dickson College,stop_code: Dickson College, lat: -35.24923, lng: 149.15315, zone_id: Unclassified ACT;Dickson; }
- { name: Dickson / Cowper St,stop_code: Dickson / Cowper St, lat: -35.250297, lng: 149.141336} - { name: Dickson / Cowper St,stop_code: Dickson / Cowper St, lat: -35.250297, lng: 149.141336, zone_id: Unclassified ACT;Lyneham;Dickson; }
- { name: Duffy,stop_code: Duffy, lat: -35.3366908, lng: 149.0324311} - { name: Duffy,stop_code: Duffy, lat: -35.3366908, lng: 149.0324311, zone_id: Unclassified ACT;Duffy; }
- { name: Duffy Primary,stop_code: Duffy Primary, lat: -35.334219, lng: 149.033656} - { name: Duffy Primary,stop_code: Duffy Primary, lat: -35.334219, lng: 149.033656, zone_id: Unclassified ACT;Duffy; }
- { name: Dunlop,stop_code: Dunlop, lat: -35.1981771, lng: 149.0207837} - { name: Dunlop,stop_code: Dunlop, lat: -35.1981771, lng: 149.0207837, zone_id: Unclassified ACT;Dunlop; }
- { name: Erindale Centre,stop_code: Erindale Centre, lat: -35.4038881, lng: 149.0992283} - { name: Erindale Centre,stop_code: Erindale Centre, lat: -35.4038881, lng: 149.0992283, zone_id: Wanniassa;Unclassified ACT; }
- { name: Erindale Dr / Charleston St Monash,stop_code: Erindale Dr / Charleston St Monash, lat: -35.414616, lng: 149.07888} - { name: Erindale Dr / Charleston St Monash,stop_code: Erindale Dr / Charleston St Monash, lat: -35.414616, lng: 149.07888, zone_id: Unclassified ACT;Monash;Oxley; }
- { name: Erindale / Sternberg Cres,stop_code: Erindale / Sternberg Cres, lat: -35.4028919, lng: 149.1060672} - { name: Erindale / Sternberg Cres,stop_code: Erindale / Sternberg Cres, lat: -35.4028919, lng: 149.1060672, zone_id: Wanniassa;Unclassified ACT;Fadden; }
- { name: Evatt,stop_code: Evatt, lat: -35.2091093, lng: 149.0735343} - { name: Evatt,stop_code: Evatt, lat: -35.2091093, lng: 149.0735343, zone_id: Unclassified ACT;Bonner;Evatt; }
- { name: Eye Hospital,stop_code: Eye Hospital, lat: -35.3341884, lng: 149.1656213} - { name: Eye Hospital,stop_code: Eye Hospital, lat: -35.3341884, lng: 149.1656213, zone_id: Symonston;Unclassified ACT;Fyshwick; }
- { name: Fairbairn Park,stop_code: Fairbairn Park, lat: -35.3038896, lng: 149.2038605} - { name: Fairbairn Park,stop_code: Fairbairn Park, lat: -35.3038896, lng: 149.2038605, zone_id: Unclassified ACT;Pialligo; }
- { name: Farrer Primary School,stop_code: Farrer Primary School, lat: -35.37887, lng: 149.10641} - { name: Farrer Primary School,stop_code: Farrer Primary School, lat: -35.37887, lng: 149.10641, zone_id: Unclassified ACT;Isaacs;Farrer; }
- { name: Farrer Terminus,stop_code: Farrer Terminus, lat: -35.380274, lng: 149.1104016} - { name: Farrer Terminus,stop_code: Farrer Terminus, lat: -35.380274, lng: 149.1104016, zone_id: Unclassified ACT;Isaacs;Farrer; }
- { name: Federation Square,stop_code: Federation Square, lat: -35.1908726, lng: 149.0848153} - { name: Federation Square,stop_code: Federation Square, lat: -35.1908726, lng: 149.0848153, zone_id: Unclassified ACT;Bonner;Nicholls; }
- { name: Fisher,stop_code: Fisher, lat: -35.3605627, lng: 149.0576481} - { name: Fisher,stop_code: Fisher, lat: -35.3605627, lng: 149.0576481, zone_id: Unclassified ACT;Fisher; }
- { name: Flemington Rd / Nullabor Ave,stop_code: Flemington Rd / Nullabor Ave, lat: -35.2008585, lng: 149.1493407} - { name: Flemington Rd / Nullabor Ave,stop_code: Flemington Rd / Nullabor Ave, lat: -35.2008585, lng: 149.1493407, zone_id: Unclassified ACT;Bonner;Harrison;Franklin;Gungahlin; }
- { name: Flemington Rd / Sandford St,stop_code: Flemington Rd / Sandford St, lat: -35.221231, lng: 149.144645} - { name: Flemington Rd / Sandford St,stop_code: Flemington Rd / Sandford St, lat: -35.221231, lng: 149.144645, zone_id: Unclassified ACT;Bonner;Mitchell;Franklin; }
- { name: Florey,stop_code: Florey, lat: -35.2267757, lng: 149.0544025} - { name: Florey,stop_code: Florey, lat: -35.2267757, lng: 149.0544025, zone_id: Unclassified ACT;Florey; }
- { name: Fraser,stop_code: Fraser, lat: -35.1929304, lng: 149.0433893} - { name: Fraser,stop_code: Fraser, lat: -35.1929304, lng: 149.0433893, zone_id: Unclassified ACT;Fraser; }
- { name: Fraser East Terminus,stop_code: Fraser East Terminus, lat: -35.1896539, lng: 149.04811} - { name: Fraser East Terminus,stop_code: Fraser East Terminus, lat: -35.1896539, lng: 149.04811, zone_id: Unclassified ACT;Fraser; }
- { name: Fraser West Terminus,stop_code: Fraser West Terminus, lat: -35.191513, lng: 149.038006} - { name: Fra