Idea

I often drive on the BQE, an interstate highway that snakes its way through Brooklyn. I've learned about the massive number buildings that had to be demolished, and people displaced, to make way for this and other urban highways. I wanted to allow the user to drag their mouse over the old buildings on a historical layer and "reveal" the highway beneath to get a better idea of the cost of progress. This was the original concept.

After some hacking and getting a prototype working, scratching off parts of the city became downright addictive (especially waterfronts/docks, large construction projects, highways, etc.)

Tech

The map is loading two layers. The bottom layer is a normal leaflet.js TileLayer. The top layer makes use of leaflet's Canvas TileLayer, essentially setting up a grid of 256x256 HTML canvases. For each canvas, a tile image is requested from the top layer, and is drawn into the canvas. When the user "Scratches" the canvas, they are drawing into the canvas using the 'destination-out' composite operation. This turns the affected area transparent, allowing the bottom layer to show through! Here's a blog post about how and why I built Urban Scratchoff.

Imagery

The historical imagery is provided by the New York Public Library (NYPL Labs) Mapwarper site - "Sectional aerial maps of the City of New York / photographed and assembled under the direction of the chief engineer, July 1st, 1924."

The modern day imagery is Mapquest's OpenAerial tileset

Attribution & Thanks

Todo

Mapwarper is a crowd-sourced imagery rectification tool. If you see imagery that doesn't "line up" while using Urban Scratchoff, you can actually help out and fix the rectification points on the NYPL This layer is cached on my server.As of August 2016, the modern day aerials shown are from the NYS Orthos Online Project Thanks!

I would like to make it so that anyone can submit points of interest. Everyone will be greeted with a marked up map full of interesting scratchoffs to explore.