5 comments

[ 4.4 ms ] story [ 18.6 ms ] thread
Jason’s work here is so exciting because it demonstrates another path to escape the tyranny of Mercator’s projection. Using reprojection on the client, you can take any Mercator tile source (that’s nearly all of them) and refit it to a projection more appropriate for your application. For example, Alber’s conic projection is equal-area, which is a good choice for choropleths.

In effect, client-based reprojection gives you the convenience of multi-resolution tiled geospatial data without being beholden to a specific projection. This is huge.

For a visual explanation: http://www.jasondavies.com/maps/tile/

For an example with vector tiles (may fall over under load, YMMV): http://www.jasondavies.com/maps/us-rivers/

Years ago I wrestled against similar problems trying to make a completely visual map-based photo organizer, with only partial success: http://calftrail.com/mercatalog.html

So I can tell you that what Jason Davies has been doing in this realm recently is 1) really hard, 2) really legit and 3) really exciting. While Mercator was a great choice for tile maps due to its local properties, at medium and global scales it'd rarely be one's first choice.

Now, it doesn't have to be.

Awesome work, as usual!

I guess the next feature would be to remap the UI interaction to transformation of the projection, and not just the 2D window. For example, Albers' projection includes a latitude and longitude 'center'. So it would be better to change the latitude and longitude instead of the 2D window into the static projection. This would minimize the distortion when away from the natural projection center. The mercator doesn't have a natural center precisely because it's conformal, but other projections do.

If you already have the projection functions and their inverses, using automatic differentiation is the obvious choice. I think it might be simply a matter of computing the inverse projection's change in longitude and latitude respect to dx and dy, in pixels. That will give you the right numbers, for very little effort.