Skip to content
Chicago Tribune
PUBLISHED: | UPDATED:
Getting your Trinity Audio player ready...

By Abraham Epton

A 2014 Tribune-sponsored safety study found dozens of intersections equipped with red light cameras that had no safety benefit and likely were made more dangerous, as rear-end crashes increased because of drivers stopping short to avoid a ticket. Here’s a map showing those intersections. Typically, each intersection is equipped with two cameras.

Intersections averaging fewer than four injury crashes per year prior to red-light camera installation

Intersections averaging four or more injury crashes per year prior to red-light camera installation

//cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js//cdn.leafletjs.com/leaflet-0.7.5/leaflet.js//cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.min.js//cdnjs.cloudflare.com/ajax/libs/accounting.js/0.4.1/accounting.min.js
$(function() {

var CSS = [
‘//cdn.leafletjs.com/leaflet-0.7.5/leaflet.css’,
‘//apps.chicagotribune.com/ngux_red_light_cameras/css/styles.css’
];
$.each(CSS, function(i, url) {
$(‘head’).append(”);
});
$(‘#red-lights-map’).height($(window).height() + ‘px’);

var map = L.map(‘red-lights-map’, {
scrollWheelZoom: false,
maxZoom: 16,
minZoom: 9,
maxBounds: L.latLngBounds([40.5348,-89.6842],[42.9485,-86.3168])
})
.setView([41.838299, -87.706953], 12);

L.tileLayer(
‘http://{s}.tribapps.com/chicago-print/{z}/{x}/{y}.png’, {
subdomains: [‘maps1’],
attribution: ‘Map data © OpenStreetMap contributors’,
maxZoom: 16,
minZoom: 9
}).addTo(map);

L.tileLayer(
“http://media.apps.chicagotribune.com/maptiles/chicago-mask/{z}/{x}/{y}.png”,
{ maxZoom: 16, minZoom: 9, opacity: 0.5 }).addTo(map);

var redCamera = L.icon({
iconUrl: ‘http://apps.chicagotribune.com/ngux_red_light_cameras/darkCircle.svg’,
iconSize: [30, 30],
popupAnchor: [0, -15] }),
lightCamera = L.icon({
iconUrl: ‘http://apps.chicagotribune.com/ngux_red_light_cameras/circle.svg’,
iconSize: [30, 30],
popupAnchor: [0, -15] });

$.get(‘http://apps.chicagotribune.com/ngux_red_light_cameras/red_lights.csv’, function(results) {
Papa.parse(results, {
header: true,
delimiter: ‘,’,
complete: function(data) {
data.data.forEach(function(datum) {
if (!isNaN(parseFloat(datum.latitude)) && !isNaN(parseFloat(datum.longitude))) {
if (datum[‘is currently active’] == ‘True’) {
if (datum[‘had few crashes’] == ‘True’) {
var icon = redCamera;
} else {
var icon = lightCamera;
}
var html = ‘

‘ + datum[‘intersection’] + ‘

‘;
if (datum[‘had few crashes’] == ‘True’) {
html += ‘

This intersection averaged fewer than four crashes per year prior to camera installation.


}
html += ‘

Since July 1, 2014, cameras at this intersection have issued ‘ + parseInt(datum[‘tickets since 7/1/2014’]).toLocaleString() + ‘ tickets, totalling ‘ + accounting.formatMoney(datum[‘revenue since 7/1/2014’]) + ‘‘;
L.marker(
[parseFloat(datum.latitude), parseFloat(datum.longitude)],
{
icon: icon
}).addTo(map)
.bindPopup(html);
}
}
});
}
});
});

});