[Mapcss] Layering model enhancements
Paul Hartmann
phaaurlt at googlemail.com
Wed Apr 20 17:37:58 BST 2011
Komяpa wrote:
> Hi everyone,
>
> Thinking of casings/polygons problem.
>
> Imagine a linear road that finishes as asphalted surface inside a
> forest. Let the road be highway=service; the asphalted surface -
> highway=service area=yes, and forest - landuse=forest.
>
> Currently, we draw:
> - forest as green;
> - highway=service area=yes polygon as white
> - casings for both highways. The casing for linear service overlaps
> with white area's polygon.
> - linear fill for highway.
I don't understand completely. I assume the casing for the linear way is grey and it is filled white. What do you mean by casing of the area? Is this a simple line style that uses the same way as the area? What is it's colour, is it grey?
> That leads to rendering artifacts. We can omit them by rendering first
> casings, then polygons - but that leads to roads being casingsless in
> forests.
>
> What I propose:
> - add background-*, same as fill-*, rendered before casings;
> - render fill-* in the same loop with lines.
>
> Any objections / better ideas?
Can't this be solved with explicit z-index?
JOSM assigns as default z-index:
area -1000
line casing -100
line pattern -1
line 0
line text 2
node 1000
untagged node 1000+epsilon
offset for selected objects: +700
offset for members of a selected relation: +600
All objects are in one rendering loop, because:
* Nodes are much more common than ways, so performance wise, there is no difference sorting only /nodes/ compared to /all objects/ by z-index.
* Sometimes it is useful to render node styles below line styles, e.g. if you like to mark the modified objects with a "halo".
Now, you probably want to draw the asphalted area on top of the way casing, so you could raise the area to a z-index of -50.
Regards, Paul
More information about the Mapcss
mailing list