octranspo 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +26 -0
- data/Rakefile +8 -0
- data/lib/octranspo.rb +20 -0
- data/lib/octranspo/headsign.rb +2539 -0
- data/lib/octranspo/headsigns.yml +40565 -0
- data/lib/octranspo/landmarks.rb +37 -0
- data/lib/octranspo/lingo.rb +125 -0
- data/lib/octranspo/lingo/headsign_messages.yml +104 -0
- data/lib/octranspo/lingo/headsign_signatures.yml +3 -0
- data/lib/octranspo/lingo/landmarks.yml +205 -0
- data/lib/octranspo/lingo/roadways.yml +1957 -0
- data/lib/octranspo/mobile_resource_methods.rb +98 -0
- data/lib/octranspo/mobile_route_data.rb +85 -0
- data/lib/octranspo/mobile_route_schedule.rb +118 -0
- data/lib/octranspo/mobile_stop_schedule.rb +137 -0
- data/lib/octranspo/remote_resource_methods.rb +89 -0
- data/lib/octranspo/route.rb +31 -0
- data/lib/octranspo/routes.yml +507 -0
- data/lib/octranspo/service_date.rb +17 -0
- data/lib/octranspo/stations.yml +77 -0
- data/lib/octranspo/stop.rb +69 -0
- data/lib/octranspo/stop_resource.rb +46 -0
- data/lib/octranspo/stops.yml +30696 -0
- data/lib/octranspo/version.rb +3 -0
- data/octranspo.gemspec +22 -0
- data/test/fixtures/mobile_route_data/20090323/route_123_index_0.html +457 -0
- data/test/fixtures/mobile_route_data/20090323/route_123_index_1.html +99 -0
- data/test/fixtures/mobile_route_data/20090323/route_1_index_0.html +700 -0
- data/test/fixtures/mobile_route_data/20090323/route_1_index_1.html +691 -0
- data/test/fixtures/mobile_route_data/20090323/route_2_index_0.html +682 -0
- data/test/fixtures/mobile_route_data/20090323/route_2_index_1.html +646 -0
- data/test/fixtures/mobile_route_data/20100323/route_123_index_0.html +469 -0
- data/test/fixtures/mobile_route_data/20100323/route_123_index_1.html +105 -0
- data/test/fixtures/mobile_route_data/20100323/route_1_index_0.html +703 -0
- data/test/fixtures/mobile_route_data/20100323/route_1_index_1.html +694 -0
- data/test/fixtures/mobile_route_data/20100323/route_2_index_0.html +685 -0
- data/test/fixtures/mobile_route_data/20100323/route_2_index_1.html +649 -0
- data/test/fixtures/mobile_route_data/20100323/route_3_index_0.html +649 -0
- data/test/fixtures/mobile_route_data/20100323/route_3_index_1.html +721 -0
- data/test/fixtures/mobile_route_schedule/20090323/route_18_direction_2_location_25.html +1038 -0
- data/test/fixtures/mobile_route_schedule/20090323/route_1_direction_1_location_0.html +1127 -0
- data/test/fixtures/mobile_route_schedule/20090323/route_2_direction_2_location_11.html +1430 -0
- data/test/fixtures/mobile_route_schedule/20090323/route_2_direction__location_11.html +104 -0
- data/test/fixtures/mobile_route_schedule/20100323/route_1_direction_1_location_0.html +1180 -0
- data/test/fixtures/mobile_route_schedule/20100323/route_2_direction_2_location_11.html +1554 -0
- data/test/fixtures/mobile_route_schedule/20100323/route_3_direction_1_location_0.html +1082 -0
- data/test/fixtures/mobile_route_schedule/20100323/route_3_direction_1_location_1.html +1082 -0
- data/test/fixtures/mobile_stop_schedule/20090323/location_1987.yml +198 -0
- data/test/fixtures/mobile_stop_schedule/20090323/location_1987_route_index_0.html +1283 -0
- data/test/fixtures/mobile_stop_schedule/20090323/location_1987_route_index_1.html +194 -0
- data/test/fixtures/mobile_stop_schedule/20090323/location_1987_route_index_2.html +116 -0
- data/test/fixtures/mobile_stop_schedule/20090323/location_3058_route_index_12.html +149 -0
- data/test/fixtures/mobile_stop_schedule/20090323/location_8789_route_index_0.html +1002 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_1987.yml +209 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_1987_route_index_0.html +1393 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_1987_route_index_1.html +206 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_1987_route_index_2.html +123 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_3058_route_index_12.html +278 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_7558_route_index_0.html +979 -0
- data/test/fixtures/mobile_stop_schedule/20100323/location_8789_route_index_0.html +1059 -0
- data/test/fixtures/stop_resource/1987.html +126 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/headsign_test.rb +34 -0
- data/test/unit/lingo_test.rb +139 -0
- data/test/unit/mobile_resource_methods_test.rb +25 -0
- data/test/unit/mobile_route_data_test.rb +124 -0
- data/test/unit/mobile_route_schedule_test.rb +210 -0
- data/test/unit/mobile_stop_schedule_test.rb +153 -0
- data/test/unit/service_date_test.rb +27 -0
- data/test/unit/stop_resource_test.rb +26 -0
- metadata +251 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
module OCTranspo
|
2
|
+
module Landmarks
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def simplify_accented_characters_in (query)
|
6
|
+
query = query.gsub(/È|É/, 'E')
|
7
|
+
query = query.gsub(/é/, 'e')
|
8
|
+
end
|
9
|
+
|
10
|
+
def find_landmarks_surrounding (query)
|
11
|
+
query = simplify_accented_characters_in(query)
|
12
|
+
url = URI.parse('http://www.octranspo.com/maps/busstops/imap.asp')
|
13
|
+
params = {"address" => query, "page"=>"search"}
|
14
|
+
response = Net::HTTP.post_form(url, params)
|
15
|
+
chunks = response.body.split("var marker = createMarker(new GPoint").map do |chunk|
|
16
|
+
chunk.strip.sub(");\r\nmap.addOverlay(marker);", '')
|
17
|
+
end
|
18
|
+
chunks.shift
|
19
|
+
chunks.pop
|
20
|
+
chunks.map do |chunk|
|
21
|
+
results = {}
|
22
|
+
first_part, second_part = chunk.split("\"").compact
|
23
|
+
latitude, longitude = first_part.sub("(", '').sub('), ', '').split(", ")
|
24
|
+
results.merge!(:latitude => latitude, :longitude => longitude)
|
25
|
+
results[:number] = Array(/INFO_PHONE=(\d\d\d\d)/.match(second_part))[1]
|
26
|
+
if id_matches = /<small> \(([A-Z0-9]+)\)<\/small>/.match(second_part)
|
27
|
+
results[:id] = id_matches[1]
|
28
|
+
end
|
29
|
+
if detour_matches = / - Detour<br><\/span>/.match(second_part)
|
30
|
+
results[:temporary?] = true
|
31
|
+
end
|
32
|
+
results
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
module OCTranspo
|
2
|
+
module Lingo
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def translate_headsign_message (lingo)
|
6
|
+
headsign_messages[lingo] || inflect_headsign(lingo)
|
7
|
+
end
|
8
|
+
|
9
|
+
def translate_headsign_signature (lingo)
|
10
|
+
headsign_signatures[lingo] || inflect_headsign(lingo)
|
11
|
+
end
|
12
|
+
|
13
|
+
def inflect_headsign (lingo)
|
14
|
+
lingo.mb_chars.upcase
|
15
|
+
end
|
16
|
+
|
17
|
+
def translate_location (lingo)
|
18
|
+
lingo = lingo.strip.gsub("\\", "/")
|
19
|
+
if landmark? lingo: return translate_landmark(lingo) end
|
20
|
+
if platform? lingo: return translate_platform(lingo) end
|
21
|
+
if address? lingo: return translate_address(lingo) end
|
22
|
+
if intersection? lingo: return translate_intersection(lingo) end
|
23
|
+
translate_landmark(lingo)
|
24
|
+
end
|
25
|
+
|
26
|
+
def inflect_location (lingo)
|
27
|
+
lingo.mb_chars.downcase.titlecase
|
28
|
+
end
|
29
|
+
|
30
|
+
def landmark? (lingo)
|
31
|
+
landmarks.key? lingo
|
32
|
+
end
|
33
|
+
|
34
|
+
def translate_landmark (lingo)
|
35
|
+
landmarks[lingo] || inflect_location(lingo)
|
36
|
+
end
|
37
|
+
|
38
|
+
def translate_roadway (lingo)
|
39
|
+
roadways[lingo] || translate_landmark(lingo)
|
40
|
+
end
|
41
|
+
|
42
|
+
def intersection? (lingo)
|
43
|
+
if address?(lingo)
|
44
|
+
false
|
45
|
+
else
|
46
|
+
extract_intersection_from(lingo) ? true : false
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def extract_intersection_from (lingo)
|
51
|
+
if matched = lingo.match(/(.*) \/ (.*)/)
|
52
|
+
[matched[1], matched[2]].map!(&:strip)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def translate_intersection (lingo)
|
57
|
+
extracted = extract_intersection_from(lingo).map { |part| translate_roadway(part) }
|
58
|
+
"#{extracted.first} at #{extracted.last}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def address? (lingo)
|
62
|
+
extract_address_from(lingo) ? true : false
|
63
|
+
end
|
64
|
+
|
65
|
+
def extract_address_from (lingo)
|
66
|
+
if matched = lingo.match(/(.*) \/ AD. (\d+)/)
|
67
|
+
{:street => matched[1], :number => matched[2]}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def translate_address (lingo)
|
72
|
+
extracted = extract_address_from(lingo)
|
73
|
+
"#{extracted[:number]} #{translate_roadway(extracted[:street])}"
|
74
|
+
end
|
75
|
+
|
76
|
+
def platform? (lingo)
|
77
|
+
extract_platform_from(lingo) ? true : false
|
78
|
+
end
|
79
|
+
|
80
|
+
def extract_platform_from (lingo)
|
81
|
+
extract_bus_platform_from(lingo) || extract_train_platform_from(lingo)
|
82
|
+
end
|
83
|
+
|
84
|
+
def extract_bus_platform_from (lingo)
|
85
|
+
if matched = lingo.match(/(.+[A-Z]+) +(\d[A-E])$/)
|
86
|
+
{:station => matched[1], :platform => matched[2]}
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def extract_train_platform_from (lingo)
|
91
|
+
if matched = lingo.match(/^O-TRAIN CARLETON ([A-Z]).$/)
|
92
|
+
platforms = {'S' => "Southbound", 'N' => "Northbound"}
|
93
|
+
return {:station => "CARLETON", :platform => platforms[matched[1]]}
|
94
|
+
end
|
95
|
+
if matched = lingo.match(/^O-TRAIN (.+[A-Z]+)/)
|
96
|
+
return {:station => matched[1], :platform => "O-Train"}
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def bus_platform_number_pattern
|
101
|
+
/[1-9][A-E]/
|
102
|
+
end
|
103
|
+
|
104
|
+
def format_platform (platform)
|
105
|
+
if platform.match(bus_platform_number_pattern)
|
106
|
+
"Platform #{platform}"
|
107
|
+
else
|
108
|
+
"#{platform} Platform"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def translate_platform (lingo)
|
113
|
+
extracted = extract_platform_from(lingo)
|
114
|
+
"#{translate_landmark(extracted[:station])}, #{format_platform extracted[:platform]}"
|
115
|
+
end
|
116
|
+
|
117
|
+
[:headsign_messages, :headsign_signatures, :landmarks, :roadways].each do |collection|
|
118
|
+
module_eval <<-END
|
119
|
+
def #{collection}
|
120
|
+
@#{collection} ||= YAML.load_file("#{File.dirname(__FILE__)}/lingo/#{collection}.yml")
|
121
|
+
end
|
122
|
+
END
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
"AIRPORT / AéROPORT": "AIRPORT"
|
2
|
+
|
3
|
+
"ALTA-VISTA": "ALTA VISTA"
|
4
|
+
|
5
|
+
"BARRHAVEN CTR": "BARRHAVEN CENTRE"
|
6
|
+
"Barrhaven Ctr Strandherd": "BARRHAVEN CENTRE"
|
7
|
+
|
8
|
+
"U. CARLETON U.": "CARLETON"
|
9
|
+
|
10
|
+
"DOWNTOWN/CENTRE-VILLE" : "DOWNTOWN"
|
11
|
+
"DOWNTOWN CENTRE-VILLE": "DOWNTOWN"
|
12
|
+
"DOWNTOWN / CENTRE-VILLE": "DOWNTOWN"
|
13
|
+
"2X DOWNTOWN CENTRE-VILLE": "DOWNTOWN"
|
14
|
+
"2X DOWNTOWN CENTRE-VILLE - BANK SOMERSET": "DOWNTOWN"
|
15
|
+
"7X DOWNTOWN CENTRE-VILLE": "DOWNTOWN"
|
16
|
+
"7X DOWNTOWN CENTRE-VILLE-BANK SOMERSET": "DOWNTOWN"
|
17
|
+
"14X DOWNTOWN CENTRE-VILLE": "DOWNTOWN"
|
18
|
+
"DOWNTOWN CENTRE-VILLE LEBRETON": "DOWNTOWN"
|
19
|
+
"DOWNTOWN CENTRE-VILLE HURDMAN": "DOWNTOWN"
|
20
|
+
"DOWNTOWN CENTRE-VILLE HURDMAN": "DOWNTOWN"
|
21
|
+
|
22
|
+
"NEPEAN S. / FALLOWFIELD": "FALLOWFIELD"
|
23
|
+
|
24
|
+
"ORLéANS": "ORLEANS"
|
25
|
+
"ORLÉANS": "ORLEANS"
|
26
|
+
"ORLEANS": "ORLEANS"
|
27
|
+
|
28
|
+
"PLACE D'ORLÉANS": "PLACE D’ORLÉANS"
|
29
|
+
"PLACE D' ORLÉANS": "PLACE D’ORLÉANS"
|
30
|
+
"PLACE D'ORLEANS": "PLACE D’ORLÉANS"
|
31
|
+
|
32
|
+
"OTTAWA-ROCKCLIFFE": "OTTAWA ROCKCLIFFE"
|
33
|
+
"3X OTTAWA-ROCKCLIFFE": "OTTAWA ROCKCLIFFE"
|
34
|
+
"7X OTT ROCKCLIFFE - BRITTANY MONTREAL": "OTTAWA ROCKCLIFFE"
|
35
|
+
|
36
|
+
"OTTAWA S.": "OTTAWA SOUTH"
|
37
|
+
"OTTAWA SOUTH / SUD": "OTTAWA SOUTH"
|
38
|
+
|
39
|
+
"CUMBERLAND - TRIM": "TRIM"
|
40
|
+
"CUMBERLAND TRIM via Belfast": "TRIM"
|
41
|
+
"CUMBERLAND TRIM via Jeanne d'Arc": "TRIM"
|
42
|
+
"CUMBERLND Trim via Rideau & Jeanne d'Arc": "TRIM"
|
43
|
+
|
44
|
+
"KANATA NORTH NORD": "KANATA NORTH"
|
45
|
+
|
46
|
+
"RIVERSIDE SOUTH / SUD": "RIVERSIDE SOUTH"
|
47
|
+
|
48
|
+
"GATINEAU / HULL OR TUNNEY'S PASTURE": "HULL"
|
49
|
+
|
50
|
+
"GLOUCESTER N. & BLAIR": "GLOUCESTER NORTH"
|
51
|
+
"GLOUCESTER NORTH / NORD": "GLOUCESTER NORTH"
|
52
|
+
|
53
|
+
"GLOUCESTER SOUTH / SUD": "GLOUCESTER SOUTH"
|
54
|
+
"GLOUCESTER SOUTH / SUD AM": "GLOUCESTER SOUTH"
|
55
|
+
"GLOUCESTER SOUTH / SUD OR/OU SOUTH KEYS": "GLOUCESTER SOUTH"
|
56
|
+
|
57
|
+
"IMMACULATA H.S.": "IMMACULATA HIGH SCHOOL"
|
58
|
+
"SPECIAL IMMACULATA H.S.": "IMMACULATA HIGH SCHOOL"
|
59
|
+
|
60
|
+
"LINCOLN FIELDS \ NEPEAN CENTRE": "LINCOLN FIELDS"
|
61
|
+
|
62
|
+
"LOCAL NORTH/NORD": "LOCAL NORTH"
|
63
|
+
"LOCAL NORTH / NORD": "LOCAL NORTH"
|
64
|
+
|
65
|
+
"LOCAL SOUTH/SUD": "LOCAL SOUTH"
|
66
|
+
"LOCAL SOUTH / SUD": "LOCAL SOUTH"
|
67
|
+
|
68
|
+
"LOCAL WEST / OUEST": "LOCAL WEST"
|
69
|
+
|
70
|
+
"NEPEAN CENTRE - ROBERTSON MOODIE": "NEPEAN CENTRE"
|
71
|
+
"3X NEPEAN CENTRE MERIVALE VIEWMOUNT": "NEPEAN CENTRE"
|
72
|
+
|
73
|
+
"NEPEAN CENTRE - BAYSHORE": "NEPEAN CENTRE & BAYSHORE"
|
74
|
+
|
75
|
+
"NEPEAN NORTH NORD": "NEPEAN NORTH"
|
76
|
+
"NEPEAN NORTH NORD": "NEPEAN NORTH"
|
77
|
+
"NEPEAN NORTH / NORD": "NEPEAN NORTH"
|
78
|
+
"NEPEAN NORTH / NORD - BAYSHORE": "NEPEAN NORTH"
|
79
|
+
|
80
|
+
"NEPEAN SOUTH / SUD": "NEPEAN SOUTH"
|
81
|
+
|
82
|
+
"ST LAURENT": "ST. LAURENT"
|
83
|
+
|
84
|
+
"TUNNEY'S PASTURE": "TUNNEY’S PASTURE"
|
85
|
+
|
86
|
+
"97X SOUTH KEYS HUNT CLUB": "SOUTH KEYS"
|
87
|
+
|
88
|
+
"97X NEPEAN N. BAYSHORE WOODRIDGE": "NEPEAN NORTH VIA BAYSHORE"
|
89
|
+
|
90
|
+
"129 X SPECIAL CARSON-MONTREAL": "CARSON MONTREAL"
|
91
|
+
|
92
|
+
"130 X SPECIAL ST. JOSEPH-GREY NUNS": "ST. JOSEPH-GREY NUNS"
|
93
|
+
|
94
|
+
"130 X SPECIAL JEANNE D'ARC\CHAMPLAIN": "JEANNE D’ARC CHAMPLAIN"
|
95
|
+
|
96
|
+
"135X SPECIAL ST. PETER'S H.S.": "ST. PETER’S HIGH SCHOOL"
|
97
|
+
|
98
|
+
"144X GLOUCESTER S. HINDU TEMPLE": "GLOUCESTER SOUTH HINDU TEMPLE"
|
99
|
+
|
100
|
+
"148X SPECIAL CANTERBURY": "CANTERBURY"
|
101
|
+
|
102
|
+
"156X SPECIAL MERIVALE AND VIEWMOUNT": "MERIVALE & VIEWMOUNT"
|
103
|
+
|
104
|
+
"156X SPECIAL MERIVALE & MEADOWLANDS.": "MERIVALE & MEADOWLANDS"
|
@@ -0,0 +1,205 @@
|
|
1
|
+
# Transit Stations
|
2
|
+
"BASELINE": "Baseline Station"
|
3
|
+
"BAYSHORE": "Bayshore Station"
|
4
|
+
"BAYVIEW": "Bayview Station"
|
5
|
+
"BILLINGS BRIDGE": "Billings Bridge Station"
|
6
|
+
"BLAIR": "Blair Station"
|
7
|
+
"CAMPUS": "Campus Station"
|
8
|
+
"CYRVILLE": "Cyrville Station"
|
9
|
+
"DOMINION": "Dominion Station"
|
10
|
+
"EAGLESON": "Eagleson Station"
|
11
|
+
"FALLOWFIELD": "Fallowfield Station"
|
12
|
+
"GREENBORO": "Greenboro Station"
|
13
|
+
"HERON": "Heron Station"
|
14
|
+
"HURDMAN": "Hurdman Station"
|
15
|
+
"IRIS": "Iris Station"
|
16
|
+
"LAURIER": "Laurier Station"
|
17
|
+
"LEBRETON": "Lebreton Station"
|
18
|
+
"LEES": "Lees Station"
|
19
|
+
"LINCOLN FIELDS": "Lincoln Fields Station"
|
20
|
+
"LYCÉE CLAUDEL": "Lycée Claudel Station"
|
21
|
+
"MACKENZIE KING": "Mackenzie King Station"
|
22
|
+
"PINECREST": "Pinecrest Station"
|
23
|
+
"PLEASANT PARK": "Pleasant Park Station"
|
24
|
+
"QUEENSWAY": "Queensway Station"
|
25
|
+
"RIVERSIDE": "Riverside Station"
|
26
|
+
"SMYTH": "Smyth Station"
|
27
|
+
"SOUTH KEYS": "South Keys Station"
|
28
|
+
"STRANDHERD": "Strandherd Station"
|
29
|
+
"TERRY FOX": "Terry Fox Station"
|
30
|
+
"TRAIN": "Train Station"
|
31
|
+
"TRIM": "Trim Station"
|
32
|
+
"WALKLEY": "Walkley Station"
|
33
|
+
"WESTBORO": "Westboro Station"
|
34
|
+
"CARLETON": "Carleton Station"
|
35
|
+
"CARLING": "Carling Station"
|
36
|
+
"CONFEDERATION": "Confederation Station"
|
37
|
+
"PLACE D’ORLÉANS": "Place d’Orléans Station"
|
38
|
+
"ORLÉANS": "Place d’Orléans Station"
|
39
|
+
"ST LAURENT": "St. Laurent Station"
|
40
|
+
"TUNNEY'S PASTURE": "Tunney’s Pasture Station"
|
41
|
+
|
42
|
+
# Park and Ride
|
43
|
+
"EAGLESON / EAGLESON PARK & RIDE - PARC-O-BUS": "Eagleson Rd. at Eagleson Station Park & Ride"
|
44
|
+
|
45
|
+
# Fix broken stations platforms
|
46
|
+
"TUNNEY'S PASTURE4A": "Tunney’s Pasture Station, Platform 4A"
|
47
|
+
"HERON 4A ": "Heron Station, Platform 4A"
|
48
|
+
|
49
|
+
# Rideau Centre platforms
|
50
|
+
"RIDEAU 3A": "Rideau Centre, Platform 3A"
|
51
|
+
"RIDEAU 4A": "Rideau Centre, Platform 4A"
|
52
|
+
|
53
|
+
# Hunt Club Loop platforms
|
54
|
+
"HUNT CLUB LOOP - BOUCLE / STOP - ARRÊT 1A": "Hunt Club Loop, Platform 1A"
|
55
|
+
"BOUCHE HUNT CLUB LOOP - STOP / ARRÊT 2A": "Hunt Club Loop, Platform 2A"
|
56
|
+
|
57
|
+
# Loops
|
58
|
+
"LOOP / MCEWEN": "McKewen Ave. Loop"
|
59
|
+
"SOLANDT LOOP": "Solandt Rd. Loop"
|
60
|
+
|
61
|
+
# OC Transpo garages
|
62
|
+
"MERIVALE GARAGE / GARAGE MERIVALE": "Colonnade Rd. at OC Transpo Garage"
|
63
|
+
"COLONNADE / GARAGE O.C. TRANSPO GARAGE": "Colonnade Rd. at OC Transpo Garage"
|
64
|
+
|
65
|
+
# Fix intersections
|
66
|
+
"FALLOWFIELD / STATION FALLOWFIELD STATION": "Fallowfield Rd. at Fallowfield Station"
|
67
|
+
"ALBERT / STATION BAYVIEW STATION": "Albert St. at Bayview Station"
|
68
|
+
"CARLING / ACRES SIDE": "Carling Ave. at Holly Acres Rd."
|
69
|
+
"CAMPUS / COMMONS": "Campus Ave. at Library Rd."
|
70
|
+
"OLD STRANDHERD / HOULAHAN": "Opal Ln. at Houlahan St."
|
71
|
+
"MONTRÉAL / NRC": "Montreal Rd. at McArthur Ave."
|
72
|
+
"BANK / VISITOR": "Bank St. at South Keys Shopping Centre"
|
73
|
+
"TENTH LINE / BLACKBURN": "Tenth Line Rd. at Blackburn Bypass"
|
74
|
+
"BLAIR / DAVIDSON": "Blair Rd. at Davidson Dr."
|
75
|
+
"BLAIR E / DAVIDSON": "Blair Rd. at Davidson Dr."
|
76
|
+
"CARLING / DAVIDSON": "Carling Ave. at Davidsons Side Rd."
|
77
|
+
"CARLING / DAVIDSON''S SIDE": "Carling Ave. at Davidsons Side Rd."
|
78
|
+
"CARLING / STATION O-TRAIN STATION": "Carling Ave. at O-Train"
|
79
|
+
"MORGAN''S GRANT / FLAMBOROUGH": "Morgan’s Grant Way at. Flamborough Way"
|
80
|
+
"PROM D'ORLEANS / CENTRUM": "Place d’Orleans Dr. at Centrum Blvd."
|
81
|
+
"RUE IRIS ST./ INTERSECTION TRANSIT": "Iris St. at Transitway"
|
82
|
+
"BRONSON / HERON": "Bronson Ave. at Confederation Station"
|
83
|
+
"STOP/ARRÊT ON/SUR HERON AT/À CONFEDERATION STN.": "Heron Rd. at Confederation Station"
|
84
|
+
"HERON / BRONSON": "Heron Rd. at Confederation Station"
|
85
|
+
"SHEA / SHEA / COMPLEXE GOULBOURN COMPLEX": "Shea Rd. at Goulbourn Recreation Complex"
|
86
|
+
"SHEA / COMPLEXE GOULBOURN COMPLEX": "Shea Rd. at Goulbourn Recreation Complex"
|
87
|
+
"PRINCE OF WALES / MUSÉE D'/AGRICULTURE / MUSEUM": "Prince Of Wales Dr. at Agriculture Museum"
|
88
|
+
"HWY 417/MOODIE (PRESS BUTTON/APPUYEZ LE BOUTON)": "Highway 417 at Moodie Dr."
|
89
|
+
|
90
|
+
# Fix forward slash without whitespace.
|
91
|
+
"HERON/EDGEHILL": "Heron Rd. at Edge Hill Pl."
|
92
|
+
"LONGFIELD/STRANDHERD": "Longfields Dr. at Strandherd Dr."
|
93
|
+
"CASTLEFRANK/HAZELDEAN": "Castlefrank Rd. at Hazeldean Rd."
|
94
|
+
"GRASSY PLAINS/STONEHAVEN": "Grassy Plains Dr. at Stonehaven Dr."
|
95
|
+
"GOLDRIDGE/NORGOLD": "Goldridge Dr. at Norgold Crescent"
|
96
|
+
"STEVENAGE/GLENFIELD": "Stevenage Dr. at Glenfield Dr."
|
97
|
+
|
98
|
+
# Fix forward slash without leading whitespace.
|
99
|
+
"HAWTHORNE/ AD. 3101": "3101 Hawthorne Rd."
|
100
|
+
"LONGFIELDS/ PROTHURSH": "Longfields Dr. at Portrush Ave."
|
101
|
+
"JEANNE D'ARC/ AVIGNON": "Jeanne d’Arc Blvd. at Avignon Ct."
|
102
|
+
"SWANSEA/ PATHWAY - SENTIER": "Swansea Crescent at Pathway"
|
103
|
+
"MANN/ CHAPEL": "Mann Ave. at Chapel Rd."
|
104
|
+
|
105
|
+
# Fix forward slash without trailing whitespace.
|
106
|
+
"STAR TOP /INNES": "Star Top Rd. at Innes Rd."
|
107
|
+
|
108
|
+
# Fix node
|
109
|
+
"NODE4518": "Dauphin Rd. at Hillcrest High School"
|
110
|
+
|
111
|
+
# Airport
|
112
|
+
"AIRPORT STOP / ARRÊT AÉROPORT": "Ottawa International Airport"
|
113
|
+
"AIRPORT/ AIR CANADA CARGO": "Airport Pkwy. at Air Canada Cargo"
|
114
|
+
"AIRPORT / UPLANDS - ON REQUEST/SUR DEMANDE": "Airport Pkwy. at Uplands Dr."
|
115
|
+
|
116
|
+
# Cemetaries
|
117
|
+
"CIMETIÈRE NOTRE DAME CEMETERY": "Notre Dame Cemetery"
|
118
|
+
|
119
|
+
# Government properties
|
120
|
+
"SHIRLEY'S BAY": "Shirley’s Bay Campus"
|
121
|
+
"TERRASSES DE LA CHAUDIÈRE": "Terrasses de la Chaudière"
|
122
|
+
"NRC GUARDHOUSE - POSTE DE GARDE": "NRC Building M-2"
|
123
|
+
"NRC ROAD MACALLUM/ ÉDIFICE M 1 BLDG": "NRC Building M-2"
|
124
|
+
"NRC ROAD BALLARD / BLAIR": "Ballard Rd. at Blair Rd."
|
125
|
+
"NRC ROAD BALLARD / ÉDIFICE M 50 BLDG": "Ballard Rd. at NRC Buidling M-50"
|
126
|
+
"NRC ROAD BALLARD / ÉDIFICE M 50 BLDG": "Ballard Rd. at NRC Buidling M-50"
|
127
|
+
"NRC ROAD HOWLETT / ÉDIFICE M21 BLDG": "Howlett Rd. at NRC Building M-21"
|
128
|
+
"NRC ROAD HOWLETT / ÉDIFICE M36 BLDG": "Howlett Rd. at NRC Building M-36"
|
129
|
+
"NRC ROAD HOWLETT / ÉDIFICE M 36 BLDG": "Howlett Rd. at NRC Building M-36"
|
130
|
+
"NRC ROAD LATHE / ÉDIFICE M 54 BLDG": "Lathe Rd. at NRC Buidling M-54"
|
131
|
+
"NRC ROAD LATHE / ÉDIFICE M 55 BLDG": "Lathe Rd. at NRC Buidling M-55"
|
132
|
+
"NRC ROAD LATHE / ÉDIFICE M 79 BLDG": "Lathe Rd. at NRC Building M-79"
|
133
|
+
|
134
|
+
# Health Centres
|
135
|
+
"HÔPITAL PERLEY HOSPITAL": "Perley Rideau Veterans’ Health Centre"
|
136
|
+
|
137
|
+
# Hospitals
|
138
|
+
"HÔPITAL D'ENFANT-CHILDRENS HOSPITAL": "Children’s Hospital of Eastern Ontario"
|
139
|
+
"HÔPITAL CIVIC HOSPITAL": "Ottawa Civic Hospital"
|
140
|
+
"HÔPITAL MONTFORT HOSPITAL": "Hôpital Montfort"
|
141
|
+
"HÔPITAL QUEENSWAY HOSPITAL": "Queensway Carleton Hospital"
|
142
|
+
|
143
|
+
# Ottawa Hospital – General Campus
|
144
|
+
"HOSPITAL ENTRANCE- ENTRÉE D''HÔPITAL": "Ottawa General Hospital"
|
145
|
+
"RING ROAD / HÔPITAL GENERAL HOSPITAL": "Ottawa General Hospital"
|
146
|
+
"RING ROAD / SMYTH": "Ottawa General Hospital, Parking Lot"
|
147
|
+
"RING ROAD": "Ottawa General Hospital Ring Rd."
|
148
|
+
"RING ROAD / REHABILITATION/CENTRE/RÉHABILITATION": "Ottawa Hospital Rehabilitation Centre"
|
149
|
+
"RING ROAD / MAISON RONALD MCDONALD HOUSE": "Ronald McDonald House"
|
150
|
+
"RING ROAD / HÔPITAL D'ENFANT-CHILDRENS HOSPITAL": "Children’s Hospital of Eastern Ontario"
|
151
|
+
|
152
|
+
# Hull
|
153
|
+
"LAURIER / ÉLISABETH-BRUYÈRE": "Rue Laurier at Rue Élisabeth-Bruyère"
|
154
|
+
"ALLUMETTIÈRES / LAURIER": "Boulevard Des Allumettières at Rue Laurier"
|
155
|
+
"MAISONNEUVE / HÔTEL DE VILLE": "Boulevard Maisonneuve at Rue De l’Hôtel-de-Ville"
|
156
|
+
|
157
|
+
# Malls
|
158
|
+
"MAIL BEACON HILL MALL": "Beacon Hill Mall"
|
159
|
+
"MAIL CARLINGWOOD MALL": "Carlingwood Mall"
|
160
|
+
"MAIL HAZELDEAN MALL": "Hazeldean Mall"
|
161
|
+
"MAIL LINCOLN HEIGHTS MALL": "Lincoln Heights Mall"
|
162
|
+
"MAIL PINCREST MALL": "Pinecrest Mall"
|
163
|
+
"MAIL PINECREST MALL": "Pinecrest Mall"
|
164
|
+
"MAIL WESTGATE MALL": "Westgate Mall"
|
165
|
+
"MAIL PLACE D'ORLÉANS MALL": "Place d’Orléans Mall"
|
166
|
+
"ELMVALE MALL STOP / ARRÊT MAIL ELMVALE": "Elmvale Mall"
|
167
|
+
"HAZELDEAN MALL / ARRÊT EST - EAST STOP": "Hazeldean Mall"
|
168
|
+
"HAZELDEAN MALL / ARRÊT OUEST - WEST STOP": "Hazeldean Mall"
|
169
|
+
"CENTRE KANATA CENTRE": "Kanata Town Centre"
|
170
|
+
|
171
|
+
# Museums
|
172
|
+
"MUSÉE DE L AGRICULTURE MUSEUM": "Agriculture Museum"
|
173
|
+
"MUSÉE D' AVIATION MUSEUM": "Aviation Museum"
|
174
|
+
|
175
|
+
# Parks
|
176
|
+
"PARC ANDREW HAYDON PARK": "Andrew Haydon Park"
|
177
|
+
"PARC BATHGATE PARK": "Bathgate Park"
|
178
|
+
"PARC BAYSHORE PARK": "Bayshore Park"
|
179
|
+
"PARC BRITANNIA PARK": "Britannia Park"
|
180
|
+
"PARC BRITANNIA PARK / PARKING - STATIONNEMENT": "Britannia Park"
|
181
|
+
"PARC BRITANNIA PARK / LOOP - BOUCLE": "Britannia Park, Parking Lot"
|
182
|
+
"PARC HORNET'S NEST PARK": "Hornet’s Nest Park"
|
183
|
+
"PARC JETFORM PARK": "Jetform Park"
|
184
|
+
"PARC JOE JAMIESON PARK": "Joe Jamieson Park"
|
185
|
+
"PARC LANSDOWNE PARK": "Lansdowne Park"
|
186
|
+
"PARC UTMAN PARK": "Utman Park"
|
187
|
+
"PARC MARQUIS PARK": "Marquis Park"
|
188
|
+
|
189
|
+
# Places
|
190
|
+
"ARÉNA ARMSTRONG ARENA": "Earl Armstrong Arena"
|
191
|
+
|
192
|
+
# Schools
|
193
|
+
"ECOLE TERRY FOX SCHOOL": "Terry Fox Elementary School"
|
194
|
+
"ÉCOLE TERRY FOX SCHOOL": "Terry Fox Elementary School"
|
195
|
+
"THOMAS D'ARCY MCGEE SCHOOL": "Thomas D’Arcy Mcgee Elementary School"
|
196
|
+
"É.S. NOTRE DAME": "Notre Dame High School"
|
197
|
+
"ECOLE HILLCREST SCHOOL": "Hillcrest High School"
|
198
|
+
"BELL H.S.": "Bell High School"
|
199
|
+
"É.S. DE LA SALLE": "École secondaire De La Salle"
|
200
|
+
"LAURENTIAN H.S.": "Laurentian High School"
|
201
|
+
"L B PEARSON H.S.": "Lester B. Pearson High School"
|
202
|
+
|
203
|
+
# Ramps
|
204
|
+
"HOLLY ACRES / RAMP - BRETELLE": "Holly Acres Rd. at Highway 417 Off-ramp"
|
205
|
+
"LEES / HIGHWAY 417 RAMP - BRETELLE": "Lees Ave. at Highway 417 On-ramp"
|