Hi,
I have done some experiments with SLD-files and Filter.
I think I have found one bug, and I'm also a little confused about how to
specify my PropertyName's.
Input:
-table named world and column named gid (primary key, integer).
-layer is named gis:world
PropertyName issue:
This SLD returns a white/blank image, do you know/see why?
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="0.7.2">
<NamedLayer>
<Name>A Test Layer</Name>
<title>The title of the layer</title>
<abstract>
A styling layer used for the unit tests of sldstyler
</abstract>
<UserStyle>
<Name>polyshp</Name>
<FeatureTypeStyle>
<FeatureTypeName>gis:world</FeatureTypeName>
<Rule>
<Filter>
<PropertyIsGreaterThanOrEqualTo>
<PropertyName>gid</PropertyName>
<Literal>251</Literal>
</PropertyIsGreaterThanOrEqualTo>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#66FF66</CssParameter>
</Fill>
<Stroke/>
</PolygonSymbolizer>
</Rule>
<Rule>
<Filter>
<PropertyIsLessThan>
<PropertyName>gid</PropertyName>
<Literal>251</Literal>
</PropertyIsLessThan>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#660066</CssParameter>
</Fill>
<Stroke/>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
The possible bug:
<ElseFilter/> doesn't seem to work as it should.
SLD:
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="0.7.2">
<NamedLayer>
<Name>A Test Layer</Name>
<title>The title of the layer</title>
<abstract>
A styling layer used for the unit tests of sldstyler
</abstract>
<UserStyle>
<Name>polyshp</Name>
<FeatureTypeStyle>
<FeatureTypeName>feature</FeatureTypeName>
<Rule>
<Filter>
<FeatureId fid="world.257"/>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#66FF66</CssParameter>
</Fill>
<Stroke/>
</PolygonSymbolizer>
</Rule>
<Rule>
<ElseFilter/>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#660066</CssParameter>
</Fill>
<Stroke/>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
should be the same as (but it isn't, the first Filter it not considered by
GeoServer, only the ElseFilter):
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="0.7.2">
<NamedLayer>
<Name>A Test Layer</Name>
<title>The title of the layer</title>
<abstract>
A styling layer used for the unit tests of sldstyler
</abstract>
<UserStyle>
<Name>polyshp</Name>
<FeatureTypeStyle>
<FeatureTypeName>feature</FeatureTypeName>
<Rule>
<Filter>
<FeatureId fid="world.257"/>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#66FF66</CssParameter>
</Fill>
<Stroke/>
</PolygonSymbolizer>
</Rule>
<Rule>
<Filter>
<Not>
<FeatureId fid="world.257"/>
</Not>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#660066</CssParameter>
</Fill>
<Stroke/>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Regards
Jørn