In Mapnik rendering of LineSymbolizers, using a stroke-dasharray is incompatible with a stroke-linecap of "round". If you try to combine the two, Mapnik will ignore the stroke-dasharray and, if you're me, leave you very confused as to what's happening.

asciipip's Diary
Recent diary entries
Specifically, the stylesheets are a pain.
I want to render my own map tiles, mostly for use on my phone. I figured while I was at it, I'd modify the rendering a bit to show me some of the features that I want to map that aren't on the default slippy map (lanes, maxspeed, among others). Then I learned what a pain the mapnik stylesheets are.
Mapnik requires a lot of repetition; you have to respecify all of the rendering parameters for every variation of one of those parameters. (Make motorways wider at higher zoom levels? You have to repeat the color, linecap, and linejoin parameters.) This leads to a lot of work for modifying some of the rules.
I liked the idea of cascadenik, but I didn't like the look of the example rules it ships with. I tried replicating the default slippy map rules in cascadenik and quickly ran into a combinatorial explosion in the generated stylesheets: cascadenik generates rules for every combination of selectors you use, even if it's pointless. Because, for example, I used [highway=service][service=parking_aisle] in one rule, it generated two rules for every single highway= value, one with service=parking_aisle and one with service!=parking_aisle, even though the renderings for those rules were identical. That proliferation of rules makes the actual mapnik stylesheet *huge*. With just the road and path rules implemented (no landuse or buildings yet), cascadenik gives me a 30MB stylesheet, roughly 100 times the size of the standard stylesheet. That size comes at a rendering cost, too. I was doing renderings of features from zoom 9 down to 18 to compare the two rulesets. The cascadenik rules would take anywhere between four and ten minutes to render (of which about a minute was spend just reading in the generated stylesheet), while rendering with the standard stylesheet would finish in less than ten seconds.