Ian Turton ha scritto:

This looks like you have found a bug in the renderer. Each rule should be completely rendered before the next one is started.

Well, that's what I was thinking me too, but a comment in the code
made me check the SLD specification (OGC 02-070) and here
is what I read at page 30:

-----------------------------------------------------------------
Whether all features are
applied to each rule in sequence or whether all suitable rules are applied to each feature in sequence is implementation-specific, although there may be subtle differences in the
appearance of maps resulting from each of the approaches.

------------------------------------------------------------------

So, apparently Streaming Renderer is just choosing the highest
performance option (apply all rules to each feature, to avoid
requerying the datastore).
To force circles to be drawn on top of the polygons, one should
use two separate featuretypestyle, so that they are treated
as separated layers.

The attached SLD does the trick, and the attached image shows
the output (png8 compressed to make it a little smaller, this is a new
feature in Geoserver 1.5.2).

Cheers
Andrea
<StyledLayerDescriptor version="1.0.0" 
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" 
xmlns="http://www.opengis.net/sld"; xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <NamedLayer>
    <Name>districts</Name>
    <UserStyle>
      <Name>districts_style</Name>
      <Title>geoserver style</Title>
      <Abstract>Generated by GeoServer</Abstract>

      <FeatureTypeStyle>
        <Rule>
          <PolygonSymbolizer>
            <Fill>
              <CssParameter name="fill">#ffffaa</CssParameter>
            </Fill>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter>

              <CssParameter name="stroke-width">1</CssParameter>
            </Stroke>

          </PolygonSymbolizer>
        </Rule>
      </FeatureTypeStyle>
      <FeatureTypeStyle>
        <Rule>
          <ogc:Filter>
            <ogc:PropertyIsLessThan>
              <ogc:PropertyName>OUI_EEE92</ogc:PropertyName>

              <ogc:PropertyName>ONU_2002</ogc:PropertyName>
            </ogc:PropertyIsLessThan>
          </ogc:Filter>
          <PointSymbolizer>
            <Graphic>
              <Mark>
                <WellKnownName>circle</WellKnownName>
                <Fill>

                  <CssParameter name="fill">#ff6633</CssParameter>
                </Fill>
                <Stroke>
                  <CssParameter name="stroke">#000000</CssParameter>
                  <CssParameter name="stroke-width">1</CssParameter>
                </Stroke>
              </Mark>
              <Size>

                <ogc:Div>
                  <ogc:PropertyName>ONU_2002</ogc:PropertyName>
                  <ogc:Literal>3</ogc:Literal>
                </ogc:Div>
              </Size>
            </Graphic>
          </PointSymbolizer>
          <PointSymbolizer>

            <Graphic>
              <Mark>
                <WellKnownName>circle</WellKnownName>
                <Fill>
                  <CssParameter name="fill">#6688aa</CssParameter>
                </Fill>
                <Stroke>
                  <CssParameter name="stroke">#000000</CssParameter>

                  <CssParameter name="stroke-width">1</CssParameter>
                </Stroke>
              </Mark>
              <Size>
                <ogc:Div>
                  <ogc:PropertyName>OUI_EEE92</ogc:PropertyName>
                  <ogc:Literal>3</ogc:Literal>
                </ogc:Div>

              </Size>
            </Graphic>
          </PointSymbolizer>
        </Rule>
        <Rule>
          <ogc:Filter>
            <ogc:PropertyIsGreaterThanOrEqualTo>
              <ogc:PropertyName>OUI_EEE92</ogc:PropertyName>
              <ogc:PropertyName>ONU_2002</ogc:PropertyName>

            </ogc:PropertyIsGreaterThanOrEqualTo>
          </ogc:Filter>
          <PointSymbolizer>
            <Graphic>
              <Mark>
                <WellKnownName>circle</WellKnownName>
                <Fill>
                  <CssParameter name="fill">#6688aa</CssParameter>

                </Fill>
                <Stroke>
                  <CssParameter name="stroke">#000000</CssParameter>
                  <CssParameter name="stroke-width">1</CssParameter>
                </Stroke>
              </Mark>
              <Size>
                <ogc:Div>

                  <ogc:PropertyName>OUI_EEE92</ogc:PropertyName>
                  <ogc:Literal>3</ogc:Literal>
                </ogc:Div>
              </Size>
            </Graphic>
          </PointSymbolizer>
          <PointSymbolizer>
            <Graphic>

              <Mark>
                <WellKnownName>circle</WellKnownName>
                <Fill>
                  <CssParameter name="fill">#ff6633</CssParameter>
                </Fill>
                <Stroke>
                  <CssParameter name="stroke">#000000</CssParameter>

                  <CssParameter name="stroke-width">1</CssParameter>
                </Stroke>
              </Mark>
              <Size>
                <ogc:Div>
                  <ogc:PropertyName>ONU_2002</ogc:PropertyName>
                  <ogc:Literal>3</ogc:Literal>
                </ogc:Div>

              </Size>
            </Graphic>
          </PointSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

<<inline: wms.png>>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to