Is it possible to group several PointSymbolizers and rotate them all as a group?
Imagine that I have a rule such that for each point I have three small circles, the first offset along the y-axis so that it renders slightly below the point location, and the other two slightly below and to the left and right respectively. That is, the three circles appear as a horizontal line of circles below the location.
Depending on a 'heading' value, I want to rotate them as a group. Eg, given a heading of 90 degrees, I want the first circle to appear offset to the left (along x-axis this time), and the other two also to the left and up/down respectively. That is, the three circles now appear as a vertical line of circles to the left of the location.
I know I can rotate each symbolizer around itself, but I'm trying to rotate the whole group. If this is not possible, I'd have to use trigonometry to calculate the x/y offsets for each of them, plus rotate them around themselves.
Any ideas?
Below is a rule that will put a white dot at the location, and three dots below it. I would like to group these four dots and rotate them around the location (ie the white dot). Is that possible via markup?
I've managed to do it by calculating the offset values using functions ('cos', 'sin'), but it gets quite verbose and if there's a way to group markers and specify a single rotation angle, that would be neater.
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#ffffff</CssParameter>
</Fill>
</Mark>
<Size>4</Size>
</Graphic>
</PointSymbolizer>
<PointSymbolizer>
<Geometry>
<ogc:Function name="offset">
<ogc:PropertyName>geo_pnt</ogc:PropertyName>
<ogc:Literal>-0.000025</ogc:Literal>
<ogc:Literal>-0.000025</ogc:Literal>
</ogc:Function>
</Geometry>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#ff0000</CssParameter>
</Fill>
</Mark>
<Size>10</Size>
</Graphic>
</PointSymbolizer>
<PointSymbolizer>
<Geometry>
<ogc:Function name="offset">
<ogc:PropertyName>geo_pnt</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>-0.000025</ogc:Literal>
</ogc:Function>
</Geometry>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#00ff00</CssParameter>
</Fill>
</Mark>
<Size>10</Size>
</Graphic>
</PointSymbolizer>
<PointSymbolizer>
<Geometry>
<ogc:Function name="offset">
<ogc:PropertyName>geo_pnt</ogc:PropertyName>
<ogc:Literal>0.000025</ogc:Literal>
<ogc:Literal>-0.000025</ogc:Literal>
</ogc:Function>
</Geometry>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#0000ff</CssParameter>
</Fill>
</Mark>
<Size>10</Size>
</Graphic>
</PointSymbolizer>
</Rule>