[josm-dev] MapCSS selector to match way in multiple relations
Paul Hartmann
phaaurlt at googlemail.com
Thu Nov 3 16:20:52 GMT 2011
On 11/03/2011 08:44 AM, Martin Ždila wrote:
> Hello
>
> I'd like to create a MapCSS for hiking trails. In our country we use 4
> colours to mark hiking trails. Some ways may be parts of multiple
> trails. What I want is to draw parallel lines to such ways but not
> with fixed offset for each color.
>
> I found that offset style must be an absolute value and so I need to
> specify offset for all color combinations like this:
>
> relation[osmc:symbol^=red] > way::redLayer { color: red; offset: 5 }
> relation[osmc:symbol^=green] > way::greenLayer { color: green; offset: 5 }
> relation[osmc:symbol^=blue] > way::blueLayer { color: blue; offset: 5 }
> relation[osmc:symbol^=yellow] > way::yellowLayer { color: yellow; offset: 5 }
>
> /* Following rules should override previous per layer: */
> /* Following uses unsupported syntax: */
>
> relation[osmc:symbol^=red & osmc:symbol^=green ] > way::greenLayer {
> offset: 10 }
> relation[osmc:symbol^=red & osmc:symbol^=blue ] > way::greenBlue { offset: 10 }
> relation[osmc:symbol^=red & osmc:symbol^=yellow ] > way::greenYellow {
> offset: 10 }
>
> ... and many other combinations
>
> Is there a way to write it in some supported syntax? Or is there some
> different way to render marked trails as I described?
Hi Martin,
try this [1]. Eval is no fun at the moment, because there is so little
debugging output, but it should work.
Paul
[1]
relation[osmc:symbol^=red] > way {
red: true;
}
relation[osmc:symbol^=blue] > way {
blue: true;
}
relation[osmc:symbol^=green] > way {
green: true;
}
way::red_layer {
offset: 0;
}
way[prop("red","default")]::red_layer {
color: red;
width: 3;
offset: 5;
}
way::blue_layer {
offset: prop("offset","red_layer");
}
way[prop("blue","default")]::blue_layer {
color: blue;
width: 3;
offset: prop("offset","red_layer") + 5;
}
way::green_layer {
offset: prop("offset","blue_layer");
}
way[prop("green","default")]::green_layer {
color: green;
width: 3;
offset: prop("offset","blue_layer") + 5;
}
More information about the josm-dev
mailing list