首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外接SLD的Geoserver光栅

外接SLD的Geoserver光栅
EN

Stack Overflow用户
提问于 2022-06-02 08:16:13
回答 1查看 212关注 0票数 0

我想使用外部SLD (托管在我的服务器)来象征光栅在Geoserver。

如果在Geoserver中作为默认样式使用,下面的SLD可以工作。如果我复制它(更改一些颜色)并放置在Geoserver外部,保存为SLD (或XML),并使用SLD=服务器/mySLD.sld调用SLD=服务器/mySLD.sld,我得到的地图仍然是‘默认的,Geoserver’样式。

代码语言:javascript
复制
<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动态创建的),所以我想知道问题是否在于光栅数据是不可能的。

EN

回答 1

Stack Overflow用户

发布于 2022-06-02 09:48:53

你在尝试在图书馆模式中操作

库模式下的样式查找操作如下:

  • 对于层列表中的每个层,应用样式要么是在样式列表中指定的命名样式(如果存在),要么是层默认样式。
  • 对于命名的样式,如果外部样式文档有一个具有匹配层名称和样式名称的<NamedLayer>...<UserStyle>,则使用它。否则,将在目录中搜索样式名称。如果在那里找不到它,就会发生错误。
  • 对于默认样式,搜索外部样式文档以找到具有层名的<NamedLayer>元素。如果它包含一个具有值为1的<UserStyle>元素的<IsDefault>,则使用该样式。否则,将使用该层(必须存在)的默认服务器样式。

因此,要么需要在styles参数中提供命名样式,要么通过向其添加<IsDefault>1</IsDefault>使样式成为默认样式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72472907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档