Geoserver发布地图服务图层样式根据字段值变化

Geoserver发布地图服务图层样式(边线颜色、线宽、线型;面填充色等)取字段值,根据字段值变化。如下图所示:

样式代码如下:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<sld:StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink">
  <sld:NamedLayer>
    <sld:Name>custom_region</sld:Name>
    <sld:UserStyle>
      <sld:Name>custom_region</sld:Name>
      <sld:FeatureTypeStyle>
        <sld:FeatureTypeName>custom_region</sld:FeatureTypeName>
        <sld:Rule>
          <sld:Name>custom_region</sld:Name>
          <sld:Title>custom_region</sld:Title>
          <sld:PolygonSymbolizer>
            <sld:Fill>
              <sld:CssParameter name="fill">
                <ogc:PropertyName>fillcolor</ogc:PropertyName></sld:CssParameter>
              <sld:CssParameter name="fill-opacity">
                <ogc:PropertyName>fillopacit</ogc:PropertyName></sld:CssParameter>
            </sld:Fill>
            <!--<sld:Stroke>
              <sld:CssParameter name="stroke">
                <ogc:PropertyName>linecolor</ogc:PropertyName></sld:CssParameter>
              <sld:CssParameter name="stroke-width">
                <ogc:PropertyName>linesize</ogc:PropertyName></sld:CssParameter>
              <sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
            
              <ogc:Function name="if_then_else">
                <ogc:Function name="greaterThan">
                  <ogc:PropertyName>linetype</ogc:PropertyName>
                  <ogc:Literal>1</ogc:Literal>
                </ogc:Function>
                <ogc:Literal>
                  <CssParameter name="stroke-dashoffset">10</CssParameter>
                  <CssParameter name="stroke-dasharray">20 20</CssParameter>
                </ogc:Literal>
                <ogc:Literal>
                  <CssParameter name="stroke-dashoffset">0</CssParameter>
                  <CssParameter name="stroke-dasharray">10 0</CssParameter>
                </ogc:Literal>
              </ogc:Function>
            </sld:Stroke>-->
              
            <!--<sld:Stroke>
              <sld:CssParameter name="stroke">
                <ogc:PropertyName>linecolor</ogc:PropertyName>
              </sld:CssParameter>
              <sld:CssParameter name="stroke-width">
                <ogc:PropertyName>linesize</ogc:PropertyName>
              </sld:CssParameter>
              <sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
              <CssParameter name="stroke-dashoffset">
                <ogc:Function name="Interpolate">
                  <ogc:PropertyName>linetype</ogc:PropertyName>
                  <ogc:Literal>1</ogc:Literal>
                  <ogc:Literal>0</ogc:Literal>

                  <ogc:Literal>2</ogc:Literal>
                  <ogc:Literal>10</ogc:Literal>
                </ogc:Function>
              </CssParameter>
              <CssParameter name="stroke-dasharray">
                <ogc:Function name="Interpolate">
                  <ogc:PropertyName>linetype</ogc:PropertyName>
                  <ogc:Literal>1</ogc:Literal>
                  <ogc:Literal>10 0</ogc:Literal>

                  <ogc:Literal>2</ogc:Literal>
                  <ogc:Literal>20 20</ogc:Literal>
                </ogc:Function>
              </CssParameter>
            </sld:Stroke>-->
            
            <sld:Stroke>
              <sld:CssParameter name="stroke">
                <ogc:PropertyName>linecolor</ogc:PropertyName>
              </sld:CssParameter>
              <sld:CssParameter name="stroke-width">
                <ogc:PropertyName>linesize</ogc:PropertyName>
              </sld:CssParameter>
              <sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
              <CssParameter name="stroke-dashoffset">
                <ogc:Function name="if_then_else">
                <ogc:Function name="equalTo">
                  <ogc:PropertyName>linetype</ogc:PropertyName>
                  <ogc:Literal>1</ogc:Literal>
                </ogc:Function>
                <ogc:Literal>0</ogc:Literal>
                <ogc:Literal>10</ogc:Literal>
              </ogc:Function>
              </CssParameter>
              <CssParameter name="stroke-dasharray">
                <ogc:Function name="if_then_else">
                <ogc:Function name="equalTo">
                  <ogc:PropertyName>linetype</ogc:PropertyName>
                  <ogc:Literal>1</ogc:Literal>
                </ogc:Function>
                <ogc:Literal>10 0</ogc:Literal>
                <ogc:Literal>20 20</ogc:Literal>
              </ogc:Function>
              </CssParameter>
            </sld:Stroke>
          </sld:PolygonSymbolizer>
        </sld:Rule>
      </sld:FeatureTypeStyle>
    </sld:UserStyle>
  </sld:NamedLayer>
</sld:StyledLayerDescriptor>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值