train: 967401,0,4
Mon Mar 30 15:39:33 2026 2026-03-30T15:39:33Z

plat dest
 scheduled
 estimated
__218983    Stations on the Cranbourne and Pakenham lines will be affected by temporary car park closures and changes to pedestrian access at select times. These impacts are due to works as part of the Level Crossing Removal Project, Car Parks for Commuters program and other maintenance works.
** current, _* Later today, __ in the future

Final stop Cranbourne

2 1234 2026-03-30T17:59:00Z 04:59:00 139m27s 8367 no est disruptions 218983
2 1235 2026-03-30T18:01:00Z 05:01:00 141m27s 8487 no est disruptions 218983
2 1236 2026-03-30T18:04:00Z 05:04:00 144m27s 8667 no est disruptions 218983
4 1118 Malvern Station 2026-03-30T18:12:00Z 05:12:00 152m27s 9147 no est disruptions 218983
4 1036 Caulfield Station 2026-03-30T18:15:00Z 05:15:00 155m27s 9327 no est disruptions 218983
2 1034 Carnegie Station 2026-03-30T18:17:00Z 05:17:00 157m27s 9447 no est disruptions 218983
2 1138 Murrumbeena Station 2026-03-30T18:19:00Z 05:19:00 159m27s 9567 no est disruptions 218983
2 1098 Hughesdale Station 2026-03-30T18:20:00Z 05:20:00 160m27s 9627 no est disruptions 218983
2 1150 Oakleigh Station 2026-03-30T18:23:00Z 05:23:00 163m27s 9807 no est disruptions 218983
2 1099 Huntingdale Station 2026-03-30T18:25:00Z 05:25:00 165m27s 9927 no est disruptions 218983
2 1040 Clayton Station 2026-03-30T18:27:00Z 05:27:00 167m27s 10047 no est disruptions 218983
2 1208 Westall Station 2026-03-30T18:31:00Z 05:31:00 171m27s 10287 no est disruptions 218983
2 1183 Springvale Station 2026-03-30T18:34:00Z 05:34:00 174m27s 10467 no est disruptions 218983
2 1172 Sandown Park Station 2026-03-30T18:35:00Z 05:35:00 175m27s 10527 no est disruptions 218983
2 1142 Noble Park Station 2026-03-30T18:38:00Z 05:38:00 178m27s 10707 no est disruptions 218983
2 1215 Yarraman Station 2026-03-30T18:40:00Z 05:40:00 180m27s 10827 no est disruptions 218983
3 1049 Dandenong Station 2026-03-30T18:45:00Z 05:45:00 185m27s 11127 no est disruptions 218983
2 1222 Lynbrook Station 2026-03-30T18:52:00Z 05:52:00 192m27s 11547 no est disruptions 218983
2 1123 Merinda Park Station 2026-03-30T18:55:00Z 05:55:00 195m27s 11727 no est disruptions 218983
2 1045 Cranbourne Station 2026-03-30T18:59:00Z 05:59:00 199m27s 11967 no est disruptions 218983
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => 'via Metro Tunnel', 'departure_sequence' => 1, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T17:59:00Z', 'skipped_stops' => [], 'stop_id' => 1234 }, { 'at_platform' => 'false', 'departure_note' => 'via Metro Tunnel', 'departure_sequence' => 2, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:01:00Z', 'skipped_stops' => [], 'stop_id' => 1235 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:04:00Z', 'skipped_stops' => [], 'stop_id' => 1236 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '4', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:12:00Z', 'skipped_stops' => [], 'stop_id' => 1118 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '4', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:15:00Z', 'skipped_stops' => [], 'stop_id' => 1036 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:17:00Z', 'skipped_stops' => [], 'stop_id' => 1034 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:19:00Z', 'skipped_stops' => [], 'stop_id' => 1138 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:20:00Z', 'skipped_stops' => [], 'stop_id' => 1098 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:23:00Z', 'skipped_stops' => [], 'stop_id' => 1150 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 10, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:25:00Z', 'skipped_stops' => [], 'stop_id' => 1099 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 11, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:27:00Z', 'skipped_stops' => [], 'stop_id' => 1040 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 12, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:31:00Z', 'skipped_stops' => [], 'stop_id' => 1208 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 13, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:34:00Z', 'skipped_stops' => [], 'stop_id' => 1183 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 14, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:35:00Z', 'skipped_stops' => [], 'stop_id' => 1172 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 15, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:38:00Z', 'skipped_stops' => [], 'stop_id' => 1142 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 16, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:40:00Z', 'skipped_stops' => [], 'stop_id' => 1215 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 17, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '3', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:45:00Z', 'skipped_stops' => [], 'stop_id' => 1049 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 18, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:52:00Z', 'skipped_stops' => [], 'stop_id' => 1222 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 19, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:55:00Z', 'skipped_stops' => [], 'stop_id' => 1123 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 20, 'direction_id' => 3, 'disruption_ids' => [ 218983 ], 'estimated_departure_utc' => undef, 'flags' => 'E', 'platform_number' => '2', 'route_id' => 4, 'run_id' => 967401, 'run_ref' => '967401', 'scheduled_departure_utc' => '2026-03-30T18:59:00Z', 'skipped_stops' => [], 'stop_id' => 1045 } ], 'directions' => { '3' => { 'direction_id' => 3, 'direction_name' => 'Cranbourne', 'route_id' => 4, 'route_type' => 0 } }, 'disruptions' => [ { 'colour' => '#ffd500', 'description' => 'Stations on the Cranbourne and Pakenham lines will be affected by temporary car park closures and changes to pedestrian access at select times. These impacts are due to works as part of the Level Crossing Removal Project, Car Parks for Commuters program and other maintenance works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 218983, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2020-12-14T21:57:00Z', 'last_updated' => '2026-03-28T10:41:14Z', 'published_on' => '2020-12-14T22:10:18Z', 'routes' => [], 'stops' => [], 'title' => 'Cranbourne and Pakenham line stations: Temporary car park closures and changes to pedestrian access until late 2026', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/cranbourne-and-pakenham-line-stations-temporary-car-park-closures-and-changes-to-pedestrian-access-until-2022' } ], 'routes' => { '4' => { 'geopath' => [], 'route_gtfs_id' => '2-CBE', 'route_id' => 4, 'route_name' => 'Cranbourne', 'route_number' => '', 'route_type' => 0 } }, 'runs' => { '967401' => { 'destination_name' => 'Cranbourne', 'direction_id' => 3, 'express_stop_count' => 3, 'externalService' => undef, 'final_stop_id' => 1045, 'geopath' => [], 'interchange' => { 'distributor' => { 'advertised' => 'false', 'destination_name' => 'Town Hall', 'direction_id' => 1, 'route_id' => 4, 'run_ref' => '967414', 'stop_id' => 1235 }, 'feeder' => { 'advertised' => 'true', 'destination_name' => 'Town Hall', 'direction_id' => 1, 'route_id' => 14, 'run_ref' => '990000', 'stop_id' => 1235 } }, 'route_id' => 4, 'route_type' => 0, 'run_id' => 967401, 'run_note' => '', 'run_ref' => '967401', 'run_sequence' => 0, 'status' => 'scheduled', 'vehicle_descriptor' => undef, 'vehicle_position' => undef } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '1034' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1034, 'stop_landmark' => '', 'stop_latitude' => '-37.88624', 'stop_longitude' => '145.058578', 'stop_name' => 'Carnegie', 'stop_sequence' => 0, 'stop_suburb' => 'Carnegie', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1036' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1036, 'stop_landmark' => '', 'stop_latitude' => '-37.8774567', 'stop_longitude' => '145.042526', 'stop_name' => 'Caulfield', 'stop_sequence' => 0, 'stop_suburb' => 'Caulfield East', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1040' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1040, 'stop_landmark' => '', 'stop_latitude' => '-37.9246826', 'stop_longitude' => '145.120529', 'stop_name' => 'Clayton', 'stop_sequence' => 0, 'stop_suburb' => 'Clayton', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1045' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1045, 'stop_landmark' => '', 'stop_latitude' => '-38.09954', 'stop_longitude' => '145.2806', 'stop_name' => 'Cranbourne', 'stop_sequence' => 0, 'stop_suburb' => 'Cranbourne', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1049' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1049, 'stop_landmark' => '', 'stop_latitude' => '-37.98966', 'stop_longitude' => '145.209061', 'stop_name' => 'Dandenong', 'stop_sequence' => 0, 'stop_suburb' => 'Dandenong', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1098' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1098, 'stop_landmark' => '', 'stop_latitude' => '-37.89488', 'stop_longitude' => '145.077637', 'stop_name' => 'Hughesdale', 'stop_sequence' => 0, 'stop_suburb' => 'Hughesdale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1099' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1099, 'stop_landmark' => '', 'stop_latitude' => '-37.91102', 'stop_longitude' => '145.102371', 'stop_name' => 'Huntingdale', 'stop_sequence' => 0, 'stop_suburb' => 'Oakleigh', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1118' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1118, 'stop_landmark' => '', 'stop_latitude' => '-37.86625', 'stop_longitude' => '145.0293', 'stop_name' => 'Malvern', 'stop_sequence' => 0, 'stop_suburb' => 'Malvern', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1123' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1123, 'stop_landmark' => '', 'stop_latitude' => '-38.0790024', 'stop_longitude' => '145.2635', 'stop_name' => 'Merinda Park', 'stop_sequence' => 0, 'stop_suburb' => 'Cranbourne North', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1138' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1138, 'stop_landmark' => '', 'stop_latitude' => '-37.8901978', 'stop_longitude' => '145.067383', 'stop_name' => 'Murrumbeena', 'stop_sequence' => 0, 'stop_suburb' => 'Murrumbeena', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1142' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1142, 'stop_landmark' => '', 'stop_latitude' => '-37.9672356', 'stop_longitude' => '145.176941', 'stop_name' => 'Noble Park', 'stop_sequence' => 0, 'stop_suburb' => 'Noble Park', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1150' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1150, 'stop_landmark' => '', 'stop_latitude' => '-37.9003677', 'stop_longitude' => '145.088318', 'stop_name' => 'Oakleigh', 'stop_sequence' => 0, 'stop_suburb' => 'Oakleigh', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1172' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1172, 'stop_landmark' => '', 'stop_latitude' => '-37.95582', 'stop_longitude' => '145.161926', 'stop_name' => 'Sandown Park', 'stop_sequence' => 0, 'stop_suburb' => 'Springvale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1183' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1183, 'stop_landmark' => '', 'stop_latitude' => '-37.9495125', 'stop_longitude' => '145.153458', 'stop_name' => 'Springvale', 'stop_sequence' => 0, 'stop_suburb' => 'Springvale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1208' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1208, 'stop_landmark' => '', 'stop_latitude' => '-37.93849', 'stop_longitude' => '145.13884', 'stop_name' => 'Westall', 'stop_sequence' => 0, 'stop_suburb' => 'Clayton South', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1215' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1215, 'stop_landmark' => '', 'stop_latitude' => '-37.9782524', 'stop_longitude' => '145.1916', 'stop_name' => 'Yarraman', 'stop_sequence' => 0, 'stop_suburb' => 'Noble Park', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1222' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1222, 'stop_landmark' => 'Lynbrook', 'stop_latitude' => '-38.0573463', 'stop_longitude' => '145.249283', 'stop_name' => 'Lynbrook', 'stop_sequence' => 0, 'stop_suburb' => 'Lynbrook', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1234' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1234, 'stop_landmark' => '', 'stop_latitude' => '-37.80805', 'stop_longitude' => '144.96312', 'stop_name' => 'State Library', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1235' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1235, 'stop_landmark' => '', 'stop_latitude' => '-37.8160934', 'stop_longitude' => '144.966827', 'stop_name' => 'Town Hall', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1236' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1236, 'stop_landmark' => '', 'stop_latitude' => '-37.8333244', 'stop_longitude' => '144.9728', 'stop_name' => 'Anzac', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } } } }