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);
}
}
});
}
});
});
});





