我想使用外部SLD (托管在我的服务器)来象征光栅在Geoserver。
如果在Geoserver中作为默认样式使用,下面的SLD可以工作。如果我复制它(更改一些颜色)并放置在Geoserver外部,保存为SLD (或XML),并使用SLD=服务器/mySLD.sld调用SLD=服务器/mySLD.sld,我得到的地图仍然是‘默认的,Geoserver’样式。
<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"
xmlns:se="http://www.opengis.net/se">
<NamedLayer>
<Name>my_schema:my_layer</Name>
<UserStyle>
<FeatureTypeStyle>
<Rule>
<RasterSymbolizer>
<Geometry>
<PropertyName>GRAY_INDEX</PropertyName>
</Geometry>
<Opacity>1</Opacity>
<ColorMap>
<ColorMapEntry color="#E69800" label="1" opacity="0.0" quantity="0.0"/>
<ColorMapEntry color="#1b4bde" label="Building" opacity="1.0" quantity="1.0"/>
<ColorMapEntry color="#bcbcbc" label="Ground cover" opacity="1.0" quantity="2.0"/>
</ColorMap>
</RasterSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>很快,WMS调用就会像这样(也尝试使用be样式param) https://my_geoserver_url/wms?service=WMS&version=1.1.0&request=GetMap&layers=my_schema:my_layer&STYLES=&SLD=https://my_server/my_sld.sld&transparent=true&bbox=...&format=image/png
我这样做是为了对矢量数据进行动态过滤,而且所有这些都很好(SLD是通过PHP动态创建的),所以我想知道问题是否在于光栅数据是不可能的。
发布于 2022-06-02 09:48:53
你在尝试在图书馆模式中操作
库模式下的样式查找操作如下:
<NamedLayer>...<UserStyle>,则使用它。否则,将在目录中搜索样式名称。如果在那里找不到它,就会发生错误。<NamedLayer>元素。如果它包含一个具有值为1的<UserStyle>元素的<IsDefault>,则使用该样式。否则,将使用该层(必须存在)的默认服务器样式。因此,要么需要在styles参数中提供命名样式,要么通过向其添加<IsDefault>1</IsDefault>使样式成为默认样式。
https://stackoverflow.com/questions/72472907
复制相似问题