geoserver根据属性字段值设置不同的颜色

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:se="http://www.opengis.net/se" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <se:Name>ob_record_predict</se:Name>
    <UserStyle>
      <se:Name>ob_record_predict</se:Name>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:Name>Rule1</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>name</ogc:PropertyName>
              <ogc:Literal>a</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#CC3333</se:SvgParameter>
              <se:SvgParameter name="fill-opacity">0.2</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#CC3333</se:SvgParameter>
              <se:SvgParameter name="stroke-width">1</se:SvgParameter>
              <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:Name>Rule2</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>name</ogc:PropertyName>
              <ogc:Literal>b</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#7B68EE</se:SvgParameter>
              <se:SvgParameter name="fill-opacity">0.2</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#7B68EE</se:SvgParameter>
              <se:SvgParameter name="stroke-width">1</se:SvgParameter>
              <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:Name>Rule3</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>name</ogc:PropertyName>
              <ogc:Literal>c</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#0099CC</se:SvgParameter>
              <se:SvgParameter name="fill-opacity">0.2</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#0099CC</se:SvgParameter>
              <se:SvgParameter name="stroke-width">1</se:SvgParameter>
              <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

      <se:Rule>
          <se:Name>Rule1</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>name</ogc:PropertyName>
              <ogc:Literal>a</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#CC3333</se:SvgParameter>
              <se:SvgParameter name="fill-opacity">0.2</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#CC3333</se:SvgParameter>
              <se:SvgParameter name="stroke-width">1</se:SvgParameter>
              <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>

代码解读:

“Rule1”:规则名称,自定义

“PropertyIsEqualTo”:表达式(等于)。其他表达式:

<PropertyIsNotEqualTo>

<PropertyIsLessThan>

<PropertyIsLessThanOrEqualTo>

<PropertyIsGreaterThan>

<PropertyIsGreaterThanOrEqualTo>

“name”:属性名

“a”:属性值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GeoServer 中,可以使用 CQL(Common Query Language)来过滤地理数据。CQL_FILTER 是一个参数,用于在 GeoServer 中对地理数据进行过滤。 以下是一些示例,展示如何使用 CQL_FILTER 进行过滤: 1. 过滤属性相等的要素: ``` http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=workspace:layer&outputFormat=application/json&CQL_FILTER=attribute='value' ``` 上述示例中,`workspace` 是工作区名,`layer` 是图层名,`attribute` 是属性名,`value` 是要过滤的属性。这样可以获取属性等于指定的要素。 2. 过滤属性范围的要素: ``` http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=workspace:layer&outputFormat=application/json&CQL_FILTER=attribute>10 AND attribute<20 ``` 在上述示例中,`attribute` 是属性名,使用逻辑运算符 `>` 和 `<` 来定义属性的范围。这样可以获取属性在指定范围内的要素。 3. 过滤空间位置关系的要素: ``` http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=workspace:layer&outputFormat=application/json&CQL_FILTER=INTERSECTS(geometry, POINT(1 1)) ``` 在这个示例中,`geometry` 是空间字段的名称,`POINT(1 1)` 是一个点的坐标。使用 `INTERSECTS` 函数来判断要素的空间位置与指定的点是否相交。这样可以获取与指定点相交的要素。 上述示例中的 URL 中的参数可以根据实际情况进行修改,以适应你的 GeoServer 配置和数据源。你可以将这些 URL 用于浏览器或进行 HTTP 请求,以获取符合 CQL_FILTER 条件的地理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值