octranspo 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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"
|