1<script type="text/javascript"> 2const { DateTime } = luxon; 3 var iteris_icon_hover = { 4 abbr_to_full_dir: function(dir) { 5 switch(dir) { 6 case 'N': return 'Northbound'; 7 case 'S': return 'Southbound'; 8 case 'E': return 'Eastbound'; 9 case 'W': return 'Westbound'; 10 case 'B': return 'Both Directions'; 11 default: return 'N/A'; 12 } 13 }, 14 waze_subtype: function(type) { 15 switch(type) { 16 case "ACCIDENT_MINOR": return "Minor Accident"; 17 case "ACCIDENT_MAJOR": return "Major Accident"; 18 case "JAM_MODERATE_TRAFFIC": return "Moderate Traffic"; 19 case "JAM_HEAVY_TRAFFIC": return "Heavy Traffic"; 20 case "JAM_STAND_STILL_TRAFFIC": return "Stand Still Traffic"; 21 case "HAZARD_ON_ROAD": return "Hazard On Road"; 22 case "HAZARD_ON_ROAD_OBJECT": return "Object On Road"; 23 case "HAZARD_WEATHER_FOG": return "Weather - Fog"; 24 case "HAZARD_WEATHER_HAIL": return "Weather - Hail"; 25 case "HAZARD_WEATHER_HEAVY_RAIN": return "Weather - Heavy Rain"; 26 case "HAZARD_WEATHER_HEAVY_SNOW": return "Weather - Heavy Snow"; 27 case "HAZARD_WEATHER_FLOOD": return "Weather - Flood"; 28 case "HAZARD_WEATHER_TORNADO": return "Weather - Tornado"; 29 case "HAZARD_WEATHER_HEAT_WAVE": return "Weather - Heat Wave"; 30 case "HAZARD_WEATHER_HURRICANE": return "Weather - Hurricane"; 31 case "HAZARD_WEATHER_FREEZING_RAIN": return "Weather - Freezing Rain"; 32 case "HAZARD_ON_ROAD_LANE_CLOSED": return "Lane Closed"; 33 case "HAZARD_ON_ROAD_OIL": return "Oil On Road"; 34 case "HAZARD_ON_ROAD_ICE": return "Ice On Road"; 35 case "HAZARD_ON_ROAD_CONSTRUCTION": return "Road Construction"; 36 case "HAZARD_ON_ROAD_CAR_STOPPED": return "Car Stopped On Road"; 37 case "ROAD_CLOSED_HAZARD": return "Road Closed Due To Hazard"; 38 case "ROAD_CLOSED_CONSTRUCTION": return "Road Closed Due To Construction"; 39 case "ROAD_CLOSED_EVENT": return "Road Closed Due To Event"; 40 case "HAZARD_ON_SHOULDER_CAR_STOPPED": return "Hazard - Car Stopped On Shoulder"; 41 default: return ""; 42 } 43 }, 44 convert_timestamp: function(etime) { 45 if (!etime) return ''; 46 return DateTime.fromSeconds(etime, { zone: 'America/New_York' }).toFormat('MMM dd yyyy, h:mm a'); 47 }, 48 stream_available: function(rtsp) { 49 if (typeof rtsp === "undefined") { 50 return "Provides Still Images Only"; 51 } else { 52 return "Has Streaming Video"; 53 } 54 } 55 }; 56 57 function cleanMessage(message){ 58 var cleanText; 59 cleanText = $(message).text(); 60 if(cleanText.length > 23){ 61 cleanText = cleanText.substring(0, 20); 62 cleanText += "..."; 63 } 64 return cleanText; 65 } 66</script> 67<style type="text/css"> 68 #pu_balloon_container { 69 background: #ECF0FF; 70 width: 100%; 71 } 72 73 .popup_table { 74 width: 100%; 75 } 76 77 .popup_table .header { 78 height: 28px; 79 line-height: 12px !important; 80 text-align: center; 81 font: bold 12px 'Arial'; 82 color: #000B33; 83 width: 100%; 84 } 85 86 .popup_table .image { 87 width: 30px; 88 } 89 90/* 91 .popup_table .header img.icon { 92 width: 16px; 93 height: 16px; 94 padding: 0px 4px; 95 vertical-align: middle; 96 text-align: center; 97 } 98*/ 99 100 .popup_table td.subtitle, 101 .popup_table td.other_row, 102 .popup_table td.centered_row { 103 border-top: 1px dashed #CCCCCC; 104 } 105 106 .popup_table td.centered_row { 107 text-align: center; 108 } 109 110 .popup_table td.label { 111 font-weight: bold; 112 color: #444444; 113 padding: 6px 8px 4px 2px; 114 white-space: nowrap; 115 vertical-align: top; 116 } 117 118 .popup_table td.data { 119 padding-right: 6px; 120 } 121 122 .popup_table td.bold { 123 font-weight: bold; 124 } 125 126 img.still { 127 width: 200px; 128 } 129</style> 130<script type="text/x-jqote-template" id="template-map-icon-hover"> 131<% if(this.derived.layer_name.match(/cams/g)) { %> 132<table class="popup_table" cellpadding="0" cellspacing="0"> 133 <tr> 134 <td class="header menu_hdr_gradient"> 135 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 136 Camera 137 </td> 138 </tr> 139</table> 140<table class="popup_table" cellpadding="0" cellspacing="0"> 141 <tr> 142 <td colspan="2" class="title label"> 143 Traffic Nearest to Camera is Traveling: <%= iteris_icon_hover.abbr_to_full_dir(this.feature.dir) %> 144 </td> 145 </tr> 146 <tr> 147 <td colspan="2" class="subtitle label"> 148 Location: <%= this.feature.route %> @ <%= this.feature.cross_street %> 149 </td> 150 </tr> 151 <tr> 152 <td colspan="2" class="title label"> 153 Camera: <%= this.feature.name %> 154 </td> 155 </tr> 156 <tr> 157 <td colspan="2" class="subtitle label"> 158 Still Image: <img class="still" src="<%= this.feature.url %>" /> 159 </td> 160 </tr> 161 <tr> 162 <td colspan="2" class="centered_row label"> 163 This Camera <%= iteris_icon_hover.stream_available(this.feature.RTSP) %> 164 </td> 165 </tr> 166</table> 167<% } else if(this.derived.layer_name.match(/vspl/g)) { %> 168<table class="popup_table" cellpadding="0" cellspacing="0"> 169 <tr> 170 <td class="header menu_hdr_gradient"> 171 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 172 <%= this.feature.road_type %> 173 </td> 174 </tr> 175</table> 176<table class="popup_table" cellpadding="0" cellspacing="0"> 177 <tr> 178 <td class="title label"> 179 Name 180 </td> 181 <td class="title bold data"> 182 <%= this.feature.name %> 183 </td> 184 </tr> 185 <tr> 186 <td class="subtitle label"> 187 Speed 188 </td> 189 <td class="subtitle bold" style="background-color:rgb(<%= this.feature.color %>);"> 190 Speed Here: <%= this.feature.report %> 191 </td> 192 </tr> 193 <tr> 194 <td class="subtitle label"> 195 Location 196 </td> 197 <td class="subtitle bold data"> 198 <%= this.feature.location_description %> 199 </td> 200 </tr> 201 <% if(this.derived.count > 1) { %> 202 <tr> 203 <td class="other_row label"> 204 Others 205 </td> 206 <td class="other_row data"> 207 This icon also represents <b><%= (this.derived.count - 1) %></b> other nearby signs. Click to see all. 208 </td> 209 </tr> 210 <% } %> 211</table> 212<% } else if(this.derived.layer_name.match(/dmsg/g)) { %> 213<table class="popup_table" cellpadding="0" cellspacing="0"> 214 <tr> 215 <td class="header menu_hdr_gradient"> 216 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 217 Message Sign 218 </td> 219 </tr> 220</table> 221<table class="popup_table" cellpadding="0" cellspacing="0"> 222 <tr> 223 <td colspan="2" class="title label"> 224 Route <%= this.feature.route %> 225 </td> 226 </tr> 227 <tr> 228 <td colspan="2" class="subtitle label"> 229 Direction <%= iteris_icon_hover.abbr_to_full_dir(this.feature.dir) %> 230 </td> 231 </tr> 232 <tr> 233 <td colspan="2" class="subtitle label"> 234 Cross Street <%= this.feature.cross_street %> 235 </td> 236 </tr> 237 <tr> 238 <td colspan="2" class="subtitle label"> 239 Click Icon to View Sign Information 240 </td> 241 </tr> 242</table> 243<% } else if(this.derived.layer_name.match(/incd$/g) || this.derived.layer_name.match(/hinc$/g)) { %> 244<table class="popup_table" cellpadding="0" cellspacing="0"> 245 <tr> 246 <td class="header menu_hdr_gradient"> 247 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 248 <%= this.feature.headline %> 249 </td> 250 </tr> 251</table> 252<table class="popup_table" cellpadding="0" cellspacing="0"> 253 <tr> 254 <td colspan="2" class="title label"> 255 Location: <%= this.feature.location_description %> 256 </td> 257 </tr> 258 <tr> 259 <td colspan="2" class="subtitle label"> 260 Affected: <%= this.feature.lanes %> 261 </td> 262 </tr> 263 <tr> 264 <td colspan="2" class="subtitle label"> 265 Expected Clear Time: <%= iteris_icon_hover.convert_timestamp(this.feature.expected_end) %> 266 </td> 267 </tr> 268</table> 269<% } else if(this.derived.layer_name == 'acon') { %> 270<table class="popup_table" cellpadding="0" cellspacing="0"> 271 <tr> 272 <td class="header menu_hdr_gradient"> 273 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 274 <%= this.feature.headline %> 275 </td> 276 </tr> 277</table> 278<table class="popup_table" cellpadding="0" cellspacing="0"> 279 <tr> 280 <td colspan="2" class="title label"> 281 Location: <%= this.feature.location_description %> 282 </td> 283 </tr> 284 <tr> 285 <td colspan="2" class="subtitle label"> 286 Affected: <%= this.feature.lanes %> 287 </td> 288 </tr> 289 <tr> 290 <td colspan="2" class="subtitle label"> 291 Expected Completion Time: <%= iteris_icon_hover.convert_timestamp(this.feature.expected_end) %> 292 </td> 293 </tr> 294</table> 295<% } else if(this.derived.layer_name == 'fcon') { %> 296<table class="popup_table" cellpadding="0" cellspacing="0"> 297 <tr> 298 <td class="header menu_hdr_gradient"> 299 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 300 <%= this.feature.headline %> 301 </td> 302 </tr> 303</table> 304<table class="popup_table" cellpadding="0" cellspacing="0"> 305 <tr> 306 <td colspan="2" class="title label"> 307 Location: <%= this.feature.location_description %> 308 </td> 309 </tr> 310 <tr> 311 <td colspan="2" class="subtitle label"> 312 Affected: <%= this.feature.lanes %> 313 </td> 314 </tr> 315 <tr> 316 <td colspan="2" class="subtitle label"> 317 Scheduled Start: <%= iteris_icon_hover.convert_timestamp(this.feature.start) %> 318 </td> 319 </tr> 320 <tr> 321 <td colspan="2" class="subtitle label"> 322 Expected End: <%= iteris_icon_hover.convert_timestamp(this.feature.expected_end) %> 323 </td> 324 </tr> 325</table> 326<% } else if(this.derived.layer_name == 'info') { %> 327<table class="popup_table" cellpadding="0" cellspacing="0"> 328 <tr> 329 <td class="header menu_hdr_gradient"> 330 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 331 General Info 332 </td> 333 </tr> 334</table> 335<table class="popup_table" cellpadding="0" cellspacing="0"> 336 <tr> 337 <td colspan="2" class="title label"> 338 Title <%= this.feature.title %> 339 </td> 340 </tr> 341 <tr> 342 <td colspan="2" class="subtitle label"> 343 Message <%= cleanMessage(this.feature.message) %> 344 </td> 345 </tr> 346</table> 347<% } else if(this.derived.layer_name == 'wacc') { %> 348<table class="popup_table" cellpadding="0" cellspacing="0"> 349 <tr> 350 <td class="header menu_hdr_gradient"> 351 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 352 Waze Report 353 </td> 354 </tr> 355</table> 356<table class="popup_table" cellpadding="0" cellspacing="0"> 357 <tr> 358 <td colspan="2" class="title label centered_row"> 359 <%= iteris_icon_hover.waze_subtype(this.feature.subtype) %> 360 </td> 361 </tr> 362 <tr> 363 <td colspan="2" class="subtitle label centered_row"> 364 <%= this.feature.street %> 365 </td> 366 </tr> 367 <tr> 368 <td colspan="2" class="subtitle label centered_row"> 369 <%= iteris_icon_hover.convert_timestamp(this.feature.unixtime) %> 370 </td> 371 </tr> 372</table> 373<% } else if(this.derived.layer_name == 'whaz') { %> 374<table class="popup_table" cellpadding="0" cellspacing="0"> 375 <tr> 376 <td class="header menu_hdr_gradient"> 377 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 378 Waze Report 379 </td> 380 </tr> 381</table> 382<table class="popup_table" cellpadding="0" cellspacing="0"> 383 <tr> 384 <td colspan="2" class="title label centered_row"> 385 <%= iteris_icon_hover.waze_subtype(this.feature.subtype) %> 386 </td> 387 </tr> 388 <tr> 389 <td colspan="2" class="subtitle label centered_row"> 390 <%= this.feature.street %> 391 </td> 392 </tr> 393 <tr> 394 <td colspan="2" class="subtitle label centered_row"> 395 <%= iteris_icon_hover.convert_timestamp(this.feature.unixtime) %> 396 </td> 397 </tr> 398</table> 399<% } else if(this.derived.layer_name == 'wtrf') { %> 400<table class="popup_table" cellpadding="0" cellspacing="0"> 401 <tr> 402 <td class="header menu_hdr_gradient"> 403 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 404 Waze Report 405 </td> 406 </tr> 407</table> 408<table class="popup_table" cellpadding="0" cellspacing="0"> 409 <tr> 410 <td colspan="2" class="title label centered_row"> 411 <%= iteris_icon_hover.waze_subtype(this.feature.subtype) %> 412 </td> 413 </tr> 414 <tr> 415 <td colspan="2" class="subtitle label centered_row"> 416 <%= this.feature.street %> 417 </td> 418 </tr> 419 <tr> 420 <td colspan="2" class="subtitle label centered_row"> 421 <%= iteris_icon_hover.convert_timestamp(this.feature.unixtime) %> 422 </td> 423 </tr> 424</table> 425<% } else if(this.derived.layer_name == 'wshd') { %> 426<table class="popup_table" cellpadding="0" cellspacing="0"> 427 <tr> 428 <td class="header menu_hdr_gradient"> 429 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 430 Waze Report 431 </td> 432 </tr> 433</table> 434<table class="popup_table" cellpadding="0" cellspacing="0"> 435 <tr> 436 <td colspan="2" class="title label centered_row"> 437 <%= iteris_icon_hover.waze_subtype(this.feature.subtype) %> 438 </td> 439 </tr> 440 <tr> 441 <td colspan="2" class="subtitle label centered_row"> 442 <%= this.feature.street %> 443 </td> 444 </tr> 445 <tr> 446 <td colspan="2" class="subtitle label centered_row"> 447 <%= iteris_icon_hover.convert_timestamp(this.feature.unixtime) %> 448 </td> 449 </tr> 450</table> 451<% } else if(this.derived.layer_name == 'spec') { %> 452<table class="popup_table" cellpadding="0" cellspacing="0"> 453 <tr> 454 <td class="header menu_hdr_gradient"> 455 <img src="<%= this.derived.legend_icon %>" class="icon" /><br/> 456 Special Event 457 </td> 458 </tr> 459</table> 460<table class="popup_table" cellpadding="0" cellspacing="0"> 461 <tr> 462 <td colspan="2" class="title label"> 463 Title <%= this.feature.title %> 464 </td> 465 </tr> 466 <tr> 467 <td colspan="2" class="subtitle label"> 468 Message <%= cleanMessage(this.feature.message) %> 469 </td> 470 </tr> 471</table> 472<% } %> 473</script>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.