Building Bridges Raises O’Hare Airport Lights to Clear a Path for the New I-490 Tollway

Building Bridges Raises OHare Airport Lights to Clear a Path for the New I-490 Tollway

The Illinois Tollway is building four unusual bridges along the western edge of O’Hare International Airport that won’t carry cars, trucks or even pedestrians.
 
As part of its work to build the new I-490 Tollway, the Tollway is constructing the bridges to support the specialized approach lights used to help guide commercial jets to safe landings on O’Hare Airport runways.
 
The new I-490 Tollway will run near the edge of O’Hare Airport and its planned path will take it directly through approach lighting systems for four runways. At each runway location, a string of more than a dozen approach lights flash sequentially to direct jets during the landing process.
 
Building the narrow steel bridges will raise several of the approach lights for each runway above the I-490 right-of-way so the new road can be built underneath, while jets can continue to use the lights as a navigational aid to safely land at O’Hare at night or when visibility is poor. Based on its location, each bridge will hold either three or four of the light towers.
 
The key to building the bridges, according to Tollway engineers, is maintaining the required distance between each of the lights so incoming jets can hold the proper height and descent angle as they approach the runways.
 
Because the distance between the lights is critical, engineers and construction crews have to ensure that each light on the new bridges will be spaced between 90 and 105 feet apart—maintaining the same spacing required of the other lights on the ground at either end of the bridges.
 
The timing of the construction has been challenging, given the importance of the approach lights to daily airline operations at O’Hare.
 
Since all of the approach lights at the western end of each runway must be taken out of service during construction of each new bridge, the Tollway has been limited to constructing one bridge annually to limit the impact of the work on daily flights.
 
The first of the four new bridges is in operation at Runway 10 Left near the southern end of O’Hare after being completed last year.
 
Crews currently are building the second bridge at the end of Runway 9 Left, with that work scheduled to be completed this year.
 
The two additional bridges are scheduled to be built in 2024 and 2025.

An error occurred while processing the template.
Failed to "?eval" string with this error:

---begin-message---
Syntax error in ?eval-ed string in line 1, column 53:
Lexical error: encountered "u" (117), after "\"Reaching New Milestones \\".
---end-message---

The failing expression:
==> imageJSON?eval  [in template "20157#20197#1153404" at line 152, column 41]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign imageStr = imageJSON?eval  [in template "20157#20197#1153404" at line 152, column 21]
----
1<#-- 
2Widget templates can be used to modify the look of a 
3specific application. 
4 
5Please use the left panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8 
9<style> 
10    img { 
11        max-width: 100%; 
12        width: auto\9; 
13        height: auto; 
14        vertical-align: middle; 
15        border: 0; 
16        -ms-interpolation-mode: bicubic; 
17
18 
19    .image-large{ 
20        width: 100% 
21
22 
23    .image-medium{ 
24        padding-top: 10px; 
25        max-height: 100%; 
26
27 
28    .image-small{ 
29	    display: block; 
30		width: 100%; 
31		height: 0px; 
32		background-size: cover; 
33		background-position: center; 
34		background-repeat: no-repeat; 
35        padding-bottom:100%; 
36
37 
38    .separator { 
39        border-top: 1px dotted #bfbfbf !important; 
40
41 
42    /* Avoid buttons being croped in small devices*/ 
43    .taglib-page-iterator .lfr-pagination-buttons>li>a{ 
44        width: auto !important; 
45
46 
47    @media screen and (max-width: 750px) { 
48        .navbar-search.pull-right{ 
49            max-width: 100%; 
50
51
52 
53    @media screen and (max-width: 979px){ 
54        .form-search .btn[type="submit"]{ 
55            display: block !important; 
56            position: inherit !important; 
57            margin-top: 10px !important; 
58 
59            -webkit-border-radius: 14px 14px 14px 14px !important; 
60            -moz-border-radius: 14px 14px 14px 14px !important; 
61            border-radius: 14px 14px 14px 14px !important; 
62
63 
64        .navbar-search.pull-right{ 
65            max-width: 90%; 
66
67
68 
69    .entry-content { 
70        margin-bottom: 0px; 
71
72    .entry-body p { 
73        line-height: 18px; 
74        margin-bottom: 10px; 
75
76 
77     .entry-date { 
78        color: #999; 
79
80  .entry-footer:after { 
81    display: inline; 
82    content: initial; 
83
84 
85    .pagination-bar { 
86        align-items: center; 
87        display: flex; 
88        flex-wrap: wrap; 
89        clear: both; 
90        height: auto; 
91        width: auto; 
92
93 
94    .pagination-bar .pagination .page-item .page-link{ 
95        color: #009c34; 
96
97     .pagination-bar .pagination .page-item .page-link:hover { 
98        color: #0B3D16; 
99        text-decoration: none; 
100
101     .pagination-bar .pagination .page-item .page-link:focus { 
102        box-shadow: 0 0 0 0.2rem #28a7453d; 
103
104    .pagination-bar .pagination .page-item.disabled .page-link { 
105        color: #6c757d; 
106
107    .page-link:active, .page-link.active, .nav-underline .tab.active a.page-link { 
108        background-color: #009c34; 
109        border-color: #009c34; 
110
111     .entry-title h2 { 
112    margin-right: 0px;  
113
114    .page-item.active .page-link, .nav-underline .tab.active a.page-item .page-link, .page-item.show .page-link { 
115        background-color: #009c34; 
116        border-color: #009c34; 
117        color: #FFF !important; 
118        cursor: default; 
119        z-index: 3; 
120
121    .twitter-share-button.twitter-share-button-rendered.twitter-tweet-button { 
122        width: initial !important; 
123
124 
125</style> 
126 
127 
128    <#if entries?has_content> 
129     
130    <h3 style="color:black !important;">PREVIOUS POSTS</h3> 
131     
132    <#list entries as curEntry> 
133    <#-- -- > ${curEntry?index} --> 
134    <div class="entry col-md-12" style="padding-bottom: 10px;"> 
135    <div class="" style="padding-right: 0px; padding-left: 0px;"> 
136        <#assign 
137            assetRenderer = curEntry.getAssetRenderer() 
138            journalArticle = assetRenderer.getAssetObject() 
139            doc = saxReaderUtil.read(journalArticle.getContentByLocale("en_US")) 
140            rootElement = doc.getRootElement() 
141            dynamicElements = rootElement.elements() 
142        /> 
143         
144       
145    
146     
147        <#list dynamicElements> 
148            <#items as dynamicElement> 
149                
150                <#if "BigImage" == dynamicElement.attributeValue("name") > 
151                    <#assign imageJSON = dynamicElement.element("dynamic-content").getText()> 
152                    <#assign imageStr = imageJSON?eval> 
153                    <#assign imageURL = "/c/document_library/get_file?uuid=" + imageStr.uuid+ "&groupId=" + imageStr.groupId/> 
154                    
155 
156                    <div class="col-md-4 col-sm-12" style="padding-right: 0px; padding-left: 0px;"> 
157 
158 
159						<div class="image-small" style="background-image: url(&quot;${imageURL}&quot;)"> 
160 
161						</div> 
162					</div> 
163 
164                       
165                    
166                </#if> 
167 
168 
169                
170 
171                <#if "Title" == dynamicElement.attributeValue("name") > 
172                    <#assign title = dynamicElement.element("dynamic-content").getText()> 
173                     <div class="col-md-8 col-sm-12"> 
174 
175                    <div class="entry-content"> 
176                        <div class="entry-title"> 
177                            <h2><a href="${themeDisplay.getPortalURL()+"/-/"+assetRenderer.getUrlTitle()}" style="color: #009c34">${title}&nbsp;</a></h2> 
178                        </div> 
179                    </div> 
180 
181 
182 
183                </#if> 
184               
185                <#if "DisplayDate" == dynamicElement.attributeValue("name") > 
186                    <#assign displayDate = dynamicElement.element("dynamic-content").getText()> 
187                     
188                     
189                    	<div class="entry-footer"> 
190							<span class="entry-date"> 
191	                    	<span class=" lfr-portal-tooltip" title="Date"> 
192						            <img id="mefv__column1__1" src="https://www.illinoistollway.com/o/istha-public/images/common/date.png" alt="Date" title="Date"> 
193		                            <span class="taglib-text hide-accessible">Date</span> 
194		                      </span> 
195                              ${displayDate} 
196							</span> 
197						</div> 
198                  
199                 </div> 
200                </#if> 
201                 
202            </#items> 
203            <div class="col-md-12 col-sm-12"> 
204                <div class="separator"><!-- --></div> 
205            </div> 
206        </#list> 
207    </div> 
208    </div> 
209    </#list> 
210</#if>