Hacker News new | ask | show | jobs
by scardine 3260 days ago
A few years ago a good share of the client browsers would choke on complex map renderings, lets say, more than a few thousand SVG complex polygons. At the time, for this kind of use case often it was faster to generate bitmap tiles at the server side. I wrote a tile server using Mapnik bindings for Python - and TileMill was of great help.

It is no longer the case, modern computers and browsers have acceptable performance when using vectorial maps even for very complex maps. The need for firing your own tile server is very unusual.

3 comments

Open-source vector renderers don't yet have the cartographic chops that raster renderers do.

The most glaring difference is that label placement in common vector renderers is generally "try once, fail if no room", whereas in Mapnik (standard raster renderer), for example, you can supply a list of positions to try in order of preference.

There's a lot to like about client-side rendering (which is why I wrote https://github.com/systemed/tilemaker/ to generate vector tiles) but it's not up to feature parity with raster rendering yet, and for some of us those features are important.

This is true, but I'm not a cartographer. I know enough to appreciate a well rendered map but it is not my job.

In fact most of the time I can get way with just a vector layer over a 3rd party tile layer using Leaflet and some fancy fireworks showing labels on click/hover events.

I'm really glad I don't need to render tiles in the server side anymore but I remember the time when I had not choice but manage my own tile server simply because many clients could not handle something simple like a choropleth map with all the voting districts in my state.

Vector tiling is still useful for dynamically simplifying dense maps from a single data set, so that a browser doesn't have to consume and process a few dozen MB of GeoJSON or what have you into SVG or canvas output, but TileMill isn't the tool for that either. Mapbox maintains a list of vector tile parsers and generators: https://github.com/mapbox/awesome-vector-tiles

Also, map data is getting progressively richer and more expensive to render, particularly when adding 3D data, so I'm not convinced that offloading everything to the client is still a 90% use case.

Sure, but if the content is mostly static, why place that burden on clients? I can understand if it's dynamic or interactive in some way, but most maps aren't.
I don't have a single use case where I'm publishing a map on the web and it is not interactive. Someone could make the case for a PDF file - if it is static, why not? I can even browse it off-line!