[Mapcss] Making it approachable

Thomas Davie tom.davie at gmail.com
Mon Feb 7 18:04:43 GMT 2011


On 7 Feb 2011, at 17:51, Richard Fairhurst wrote:

> Some interesting reading today!
> 
> Rather than going through stuff point-by-point I'd just make one general observation, which is: simple is good; approachable is good. Ok, that was two general observations.
> 
> If a newbie who knows some (web) CSS can write:
> 
> 	way[highway=motorway] { width: 10; color: #0000FF; }
> 	way[highway=trunk] { width: 8; color: #00FF00; }
> 	way[highway=primary] { width: 8; color: #FF0000; }
> 
> and click "refresh", then see the map appear as they expect, then that's great. We have a convert.
> 
> The "implement layers through eval and z-index" stuff is clever and architecturally neat, but doesn't pass the above test. It would be kind of like removing <p>, <ul>, <li> and everything from HTML, simply leaving <div> and <span>. Architecturally beautiful and utterly logical (after all, they can all be specified in CSS), but a PITA to work with.
> 
> Similarly for the colour stuff. Having multiply operations and all of that would be great. But it shouldn't be at the cost of rejecting a universally known, though perhaps slightly imperfect, standard.

I don't really see how the layers proposal would change the above example (or any simple example), with a good quality default style sheet (that maps layers into z-indexes nicely).  Of note one of the most powerful things about css is that you get to do things like go "see that list thing in the html, I don't want it to be a list".  The same thing should be true of MapCSS – it should be possible to take the layers specified in the tags, and entirely rearrange them.

A practical example to justify why this is something we'd want: when selecting ways in an editor it would be useful to make those ways appear on top of un-selected ways, with highlit casings (Potlatch does exactly this in fact).  Being able to simply specify 

way :selected
{
    casing-z-index: eval(100 + prop(casing-z-index));
    z-index: eval(100 + prop(casing-z-index));
}

(making an assumption that 100 is higher than any other way).

Thanks

Tom Davie


More information about the Mapcss mailing list