Во-первых, в моем случае ваш SLD не был правильно проверен на моем GeoServer.
Вам не хватает StyledLayerDescriptor -Tag вокруг них всех и NamedLayer -тег вокруг UserStyle . Кроме того, был закрывающий тег для sld: Title , который не является необходимым и может позволить интерпретатору завершиться с некоторыми ошибками.
Похоже, GeoServer возвращается к стилю по умолчанию, который является серой заливкой и черным штрихом.
Я думаю, что ваш SLD должен быть примерно таким, GeoServer проверяет его так же правильно и может даже создать легенду для этого.
<?xml version="1.0" encoding="ISO-8859-1"?>
<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>A named Layer</Name>
<UserStyle>
<Title>Dangerous and safe regions</Title>
<FeatureTypeStyle>
<Rule>
<Name>HighRisk</Name>
<Title>WGI < -0.5</Title>
<ogc:Filter>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>wgi</ogc:PropertyName>
<ogc:Literal>-0.5</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#fc8d59</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<Name>MediumRisk</Name>
<Title>WGI > -0.5 und < 0.5</Title>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyName>wgi</ogc:PropertyName>
<ogc:Literal>-0.5</ogc:Literal>
</ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>wgi</ogc:PropertyName>
<ogc:Literal>0.5</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#ffffbf</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<Name>LowRisk</Name>
<Title>WGI > 0.5</Title>
<ogc:Filter>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>WGI</ogc:PropertyName>
<ogc:Literal>0.5</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#91cf60</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<Title>Boundary</Title>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-width">0.2</CssParameter>
<CssParameter name="stroke">#e2e2e2</CssParameter>
</Stroke>
</LineSymbolizer>
<TextSymbolizer>
<Label>
<ogc:PropertyName>STATE_ABBR</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-family">Times New Roman</CssParameter>
<CssParameter name="font-style">Normal</CssParameter>
<CssParameter name="font-size">14</CssParameter>
</Font>
<LabelPlacement>
<PointPlacement>
<AnchorPoint>
<AnchorPointX>-0.5</AnchorPointX>
<AnchorPointY>0.5</AnchorPointY>
</AnchorPoint>
</PointPlacement>
</LabelPlacement>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Также убедитесь, что вы установили стиль по умолчанию для слоя в самом GeoServer или отправили стилей -Параметр в запросе, который создает OpenLayers.
Надеюсь, что я помог здесь, дайте мне знать, если яЯ ошибаюсь, или это, кажется, не работает.