1,732 karma · joined July 10, 2011
We decided to go with live videos to demonstrate the concepts in motion, and because embedding WebGL vector maps on an already big page might slow it down quite a bit, but definitely something to consider more in the future.
Also, many organizations, especially governments and news media, often have their own requirements and conventions when publishing maps — some practical, some purely stylistic. For example, NY Times uses Albers USA for election maps (it has that iconic curved look of state boundaries), and National Geographic uses Winkel Tripel for their world maps.
Rendering vector data on the browser with the level of detalization necessary for modern cartography (hundreds of thousands of points in a single view) is not possible with the usual technologies like Canvas & SVG. The only option is WebGL, which is basically a very efficient way to draw triangles. You have to implement all the logic of turning all the data into triangles (tessellating lines, breaking down polygons, implementing anti-aliasing, figuring out collision detection between labels) from scratch, reimplementing difficult computer graphics algorithms from decades ago. This is a MASSIVE amount of work, and hard to do in a performant way.
Moreover, client-side vector rendering has even more complexity than server-side technologies like Mapnik, because you can't just render something once — you have to do it in real time, 60 frames per second, considering context, making fluid animations when zooming, panning and loading data, etc.
You can learn more details about this in my presentation on vector maps e.g. here: https://youtu.be/v-V8SS14R48
If you're curious about the story behind Leaflet and how and why it was born 10 years ago, here's a short 13-minute presentation on this: https://youtu.be/NLbyHffKQuU
Also check out https://github.com/kothic/kothic-js, an older but similar attempt at making a full-fledged map renderer using 2D Canvas. It has a pretty good label rendering in particular which you might find useful.