SLD休息服务

SLD服务是一个geoserver rest服务,可用于在发布的geoserver层上创建SLD样式,并按照用户提供的指令对层数据进行分类。

该服务的目的是允许客户端动态发布数据并在其上创建简单的样式。

所有服务都以公共前缀发布 /rest/sldservice/{{layer}} 在哪里 图层 是要分类/查询的层。

查询向量数据属性

/attributes[.<format>]

方法

行动

状态代码

格式

默认格式

GET

获取给定层(矢量类型)的属性列表

200

HTML、XML、JSON

HTML

该服务可用于获取给定向量层的属性列表。这可以被客户用作 分类 服务,获取所有可用于分类的属性,并让用户选择一个。

实例

以XML格式获取状态层的属性

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/attributes.xml
<Attributes layer="states">
  <Attribute>
    <name>P_FEMALE</name>
    <type>Double</type>
  </Attribute>
  <Attribute>
    <name>HOUSHOLD</name>
    <type>Double</type>
  </Attribute>
  <Attribute>
    <name>SERVICE</name>
    <type>Double</type>
  </Attribute>
  ...
</Attributes>

以JSON格式获取状态层的属性

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/attributes.json
{
   "Attributes":{
      "@layer":"states",
      "Attribute":[
         {
            "name":"P_FEMALE",
            "type":"Double"
         },
         {
            "name":"HOUSHOLD",
            "type":"Double"
         },
         {
            "name":"SERVICE",
            "type":"Double"
         },
         ...
      ]
   }
}

对栅格和矢量数据进行分类

/classify[.<format>]

方法

行动

状态代码

格式

默认格式

GET

为给定层创建一组SLD规则

200

HTML、XML、JSON

HTML

该服务可用于为给定的向量层创建一组SLD规则,指定 属性 用于分类 分类类型 (equalInterval、uniqueInterval、quantile、jenks、equalArea、standardDeviation)和 预定义颜色范围 (红色、蓝色、灰色、喷射、随机、自定义),以及一些其他可选参数。

同样的方法也可以应用于栅格层,以便对其内容进行分类。默认情况下,使用第一个波段的数据,但可以选择不同的波段。

使用 CUSTOM 必须指定ColorMap、startColor和endColor(以及可选的midColor)。

可用于定制SLD的参数包括:

参数

描述

价值观

默认值

间隔

SLD的间隔(规则)数

整数数值

2

属性(强制)

分类属性

对于矢量图层,图层属性名称之一,对于栅格图层,带号(从一开始,就像在栅格符号中一样)

矢量没有默认值,栅格为“1”

方法

分类方法

equalInterval,uniqueInterval,分位数,jenks,equalArea,standardDeviation(高于或低于一个标准差平均值的区间,仅适用于向量)

等间隔

打开

打开或关闭范围

对,错

颠倒

正常或反向范围

对,错

归一化

将(强制转换)属性规范化为double类型(某些存储需要它来正确处理整数类型)

对,错

斜坡

要使用的颜色范围

红色、蓝色、灰色、喷气式、随机、自定义

红色

开始颜色

自定义渐变的起始颜色

结束颜色

自定义渐变的结束颜色

中色

自定义渐变的中心颜色

颜色

自定义渐变的逗号分隔颜色列表(使用该列表而不是StartColor、EndColor和MidColor以更详细地指定颜色)

条纹颜色

点和多边形的笔划颜色

BLACK

冲程重量

点和多边形的笔划权重(使用负值不在样式中包含笔划)

1

点大小

点的大小

15

满负荷

创建完整有效的SLD文档,而不是只创建规则片段

对还是错

隐藏物

将缓存头附加到响应

过期时间(秒),使用0禁用缓存

600(10分钟)

视图参数

允许使用参数化视图

以常规格式查看参数(<key>:<value>;…;<ken>:<valuen>)

自定义类

允许指定一组自定义类(客户端驱动样式);不会进行类计算(方法、间隔等被忽略)

类的格式如下:<min>,<max>,<color>;…;<minn>,<maxn>,<colorn>)

口技

允许在特定边界框上运行分类。当整个数据集太大,并且可以对较小的数据集执行分类,或者增强特定数据子集的可视化时,建议使用

与WMS/WFS语法相同,除非明确提供空间参考系统,否则预期轴顺序为东/北, minx,miny,max,maxy[,srsName]

标准偏差

将分类器处理的数据限制在平均值周围的“stdevs”标准偏差范围内。

正浮点数(例如,“1”、“2.5”、“3”)。

埃恩

底层可能用于选择要分类的特征/栅格的环境变量列表(例如,通过使用 filter 矢量和镶嵌层定义)

名称到值分配的分号分隔列表,例如。 name1:value1;name2:value2;name3:value3;...

连续的

仅用于栅格图层,如果设置为true,将生成在分类值之间线性插值的栅格调色板

真假

百分比

允许获取每个类中值的百分比。对于栅格图层,它们将包含在ColorMapEntry的标签中,而对于矢量图层,它们将被放置在规则标题中;在这两种情况下,它们将被放置在括号之间的文本末尾。

真假

百分比比例

百分比位数

整数数值

1

间隔为唯一的

唯一间隔分类可以生成的最大间隔数(规则或ColorMapEntry)。如果分类生成的类数大于此参数指定的类数,则服务将返回错误消息。

整数数值

-1

有关唯一间隔分类的详细信息

这个 intervalsForUnique 参数允许用户控制分类生成的类数,这在处理大型数据集时很重要。在这种情况下,一旦执行了唯一的区间分类,将对类的数量进行检查。此外,还可以定义名为的系统变量 org.geoserver.sldService.maxUniqueRange 定义分类可以收集的最大值数(默认值为 1024 )。在对数据执行唯一间隔分类之前执行该控制。如果发现值的数量大于系统变量的值,则该服务将返回错误消息。

实例

状态层Land_km属性上的默认(equalInterval)分类,使用基于红色的颜色范围。

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/classify.xml?attribute=LAND_KM&ramp=red
<Rules>
  <Rule>
    <Title> &gt; 159.1 AND &lt;= 344189.1</Title>
    <Filter>
      <And>
        <PropertyIsGreaterThanOrEqualTo>
          <PropertyName>LAND_KM</PropertyName>
          <Literal>159.1</Literal>
        </PropertyIsGreaterThanOrEqualTo>
        <PropertyIsLessThanOrEqualTo>
          <PropertyName>LAND_KM</PropertyName>
          <Literal>344189.1</Literal>
        </PropertyIsLessThanOrEqualTo>
      </And>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#680000</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  <Rule>
    <Title> &gt; 344189.1 AND &lt;= 688219.2</Title>
    <Filter>
      <And>
        <PropertyIsGreaterThan>
          <PropertyName>LAND_KM</PropertyName>
          <Literal>344189.1</Literal>
        </PropertyIsGreaterThan>
        <PropertyIsLessThanOrEqualTo>
          <PropertyName>LAND_KM</PropertyName>
          <Literal>688219.2</Literal>
        </PropertyIsLessThanOrEqualTo>
      </And>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#B20000</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
</Rules>

使用基于红色的颜色范围对状态层子区域属性进行唯一间隔分类。

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/classify.xml?attribute=SUB_REGION&ramp=red&method=uniqueInterval
<Rules>
  <Rule>
    <Title>E N Cen</Title>
    <Filter>
      <PropertyIsEqualTo>
        <PropertyName>SUB_REGION</PropertyName>
        <Literal>E N Cen</Literal>
      </PropertyIsEqualTo>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#330000</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  <Rule>
    <Title>E S Cen</Title>
    <Filter>
      <PropertyIsEqualTo>
        <PropertyName>SUB_REGION</PropertyName>
        <Literal>E S Cen</Literal>
      </PropertyIsEqualTo>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#490000</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  ...
</Rules>

使用基于红色的颜色范围和3个间隔对状态层子区域属性进行唯一间隔分类。

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/classify.xml?attribute=SUB_REGION&ramp=red&method=uniqueInterval&intervals=3
<string>Intervals: 9</string>

状态层人员属性上的分位数分类,带有自定义颜色渐变和3 关闭 间隔。

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/classify.xml?attribute=PERSONS&ramp=CUSTOM&method=quantile&intervals=3&startColor=0xFF0000&endColor=0x0000FF
<Rules>
  <Rule>
    <Title> &gt; 453588.0 AND &lt;= 2477574.0</Title>
    <Filter>
      <And>
        <PropertyIsGreaterThanOrEqualTo>
          <PropertyName>PERSONS</PropertyName>
          <Literal>453588.0</Literal>
        </PropertyIsGreaterThanOrEqualTo>
        <PropertyIsLessThanOrEqualTo>
          <PropertyName>PERSONS</PropertyName>
          <Literal>2477574.0</Literal>
        </PropertyIsLessThanOrEqualTo>
      </And>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#FF0000</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  <Rule>
    <Title> &gt; 2477574.0 AND &lt;= 4866692.0</Title>
    <Filter>
      <And>
        <PropertyIsGreaterThan>
          <PropertyName>PERSONS</PropertyName>
          <Literal>2477574.0</Literal>
        </PropertyIsGreaterThan>
        <PropertyIsLessThanOrEqualTo>
          <PropertyName>PERSONS</PropertyName>
          <Literal>4866692.0</Literal>
        </PropertyIsLessThanOrEqualTo>
      </And>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#AA0055</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  <Rule>
    <Title> &gt; 4866692.0 AND &lt;= 2.9760021E7</Title>
    <Filter>
      <And>
        <PropertyIsGreaterThan>
          <PropertyName>PERSONS</PropertyName>
          <Literal>4866692.0</Literal>
        </PropertyIsGreaterThan>
        <PropertyIsLessThanOrEqualTo>
          <PropertyName>PERSONS</PropertyName>
          <Literal>2.9760021E7</Literal>
        </PropertyIsLessThanOrEqualTo>
      </And>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#5500AA</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
</Rules>

状态层人员属性上的分位数分类,带有自定义颜色渐变和3 open 间隔。

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/states/classify.xml?attribute=PERSONS&ramp=CUSTOM&method=quantile&intervals=3&startColor=0xFF0000&endColor=0x0000FF&open=true
<Rules>
  <Rule>
    <Title> &lt;= 2477574.0</Title>
    <Filter>
      <PropertyIsLessThanOrEqualTo>
        <PropertyName>PERSONS</PropertyName>
        <Literal>2477574.0</Literal>
      </PropertyIsLessThanOrEqualTo>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#FF0000</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  <Rule>
    <Title> &gt; 2477574.0 AND &lt;= 4866692.0</Title>
    <Filter>
      <And>
        <PropertyIsGreaterThan>
          <PropertyName>PERSONS</PropertyName>
          <Literal>2477574.0</Literal>
        </PropertyIsGreaterThan>
        <PropertyIsLessThanOrEqualTo>
          <PropertyName>PERSONS</PropertyName>
          <Literal>4866692.0</Literal>
        </PropertyIsLessThanOrEqualTo>
      </And>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#AA0055</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
  <Rule>
    <Title> &gt; 4866692.0</Title>
    <Filter>
      <PropertyIsGreaterThan>
        <PropertyName>PERSONS</PropertyName>
        <Literal>4866692.0</Literal>
      </PropertyIsGreaterThan>
    </Filter>
    <PolygonSymbolizer>
      <Fill>
        <CssParameter name="fill">#5500AA</CssParameter>
      </Fill>
      <Stroke/>
    </PolygonSymbolizer>
  </Rule>
</Rules>

分类栅格数据

不推荐使用此资源,因为classify端点现在也可以处理栅格数据

/rasterize[.<format>]

方法

行动

状态代码

格式

默认格式

GET

为给定层(覆盖类型)创建颜色映射SLD

200

HTML、XML、JSON和SLD

HTML

该服务可用于为给定覆盖范围创建ColorMap SLD,指定 颜色图类型 (值、间隔、渐变)和 预定义颜色范围 (红色、蓝色、灰色、喷射、随机、自定义)。

使用 CUSTOM 必须指定ColorMap、startColor和endColor(以及可选的midColor)。

可用于自定义颜色映射的参数有:

参数

描述

价值观

默认值

分类最小值

双数值

0.0

最大值

最大分类值

双数值

100.0

创建的映射的类数

整数数值

100

数字

类别限制的小数位数(标签中)

整数数值

5

类型

颜色映射类型

间隔、值、斜坡

RAMP

斜坡

颜色映射颜色范围

红色、蓝色、灰色、喷气式、随机、自定义

RED

开始颜色

自定义渐变的起始颜色

结束颜色

自定义渐变的结束颜色

中色

自定义渐变的中心颜色

隐藏物

将缓存头附加到响应

过期时间(秒),使用0禁用缓存

600(10分钟)

实例

5级红色坡道

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/sfdem/rasterize.sld?min=0&max=100&classes=5&type=RAMP&ramp=RED&digits=1
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
    <sld:NamedLayer>
        <sld:Name>Default Styler</sld:Name>
        <sld:UserStyle>
            <sld:Name>Default Styler</sld:Name>
            <sld:FeatureTypeStyle>
                <sld:Name>name</sld:Name>
                <sld:FeatureTypeName>gray</sld:FeatureTypeName>
                <sld:Rule>
                    <sld:RasterSymbolizer>
                        <sld:ColorMap>
                            <sld:ColorMapEntry color="#000000" opacity="0" quantity="-1.0E-9" label="transparent"/>
                            <sld:ColorMapEntry color="#420000" opacity="1.0" quantity="0.0" label="0.0"/>
                            <sld:ColorMapEntry color="#670000" opacity="1.0" quantity="25.0" label="25.0"/>
                            <sld:ColorMapEntry color="#8B0000" opacity="1.0" quantity="50.0" label="50.0"/>
                            <sld:ColorMapEntry color="#B00000" opacity="1.0" quantity="75.0" label="75.0"/>
                            <sld:ColorMapEntry color="#D40000" opacity="1.0" quantity="100.0" label="100.0"/>
                        </sld:ColorMap>
                    </sld:RasterSymbolizer>
                </sld:Rule>
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:NamedLayer>
</sld:StyledLayerDescriptor>

具有5个类别的自定义颜色渐变,颜色范围从红色(0xff0000)到蓝色(0x0000 FF)。

curl -v -u admin:geoserver -XGET
  http://localhost:8080/geoserver/rest/sldservice/sfdem/rasterize.sld?min=0&max=100&classes=5&type=RAMP&ramp=CUSTOM&digits=1&startColor=0xFF0000&endColor=0x0000FF
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
    <sld:NamedLayer>
        <sld:Name>Default Styler</sld:Name>
        <sld:UserStyle>
            <sld:Name>Default Styler</sld:Name>
            <sld:FeatureTypeStyle>
                <sld:Name>name</sld:Name>
                <sld:FeatureTypeName>gray</sld:FeatureTypeName>
                <sld:Rule>
                    <sld:RasterSymbolizer>
                        <sld:ColorMap>
                            <sld:ColorMapEntry color="#000000" opacity="0" quantity="-1.0E-9" label="transparent"/>
                            <sld:ColorMapEntry color="#FF0000" opacity="1.0" quantity="0.0" label="0.0"/>
                            <sld:ColorMapEntry color="#CC0033" opacity="1.0" quantity="25.0" label="25.0"/>
                            <sld:ColorMapEntry color="#990066" opacity="1.0" quantity="50.0" label="50.0"/>
                            <sld:ColorMapEntry color="#660099" opacity="1.0" quantity="75.0" label="75.0"/>
                            <sld:ColorMapEntry color="#3300CC" opacity="1.0" quantity="100.0" label="100.0"/>
                        </sld:ColorMap>
                    </sld:RasterSymbolizer>
                </sld:Rule>
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:NamedLayer>
</sld:StyledLayerDescriptor>

能力

/capabilities[.<format>]

方法

行动

状态代码

格式

默认格式

GET

返回支持的栅格和向量分类方法

200

JSON、XML

JSON

该服务可用于检索SldService插件的功能。在编写本文时,端点将只返回栅格和矢量数据的受支持分类方法列表。这可能很有用,例如,对于可能与不同Geoserver版本打交道的客户来说,了解哪些分类方法可供使用是有用的。遵循json和XML格式的服务输出:

   {
   "capabilities": {
       "vector": {
           "classifications": [
               "quantile",
               "jenks",
               "equalArea",
               "equalInterval",
               "uniqueInterval",
               "standardDeviation"
           ]
       },
       "raster": {
           "classifications": [
               "quantile",
               "jenks",
               "equalArea",
               "equalInterval",
               "uniqueInterval"
           ]
       }
   }
}
 <capabilities>
   <vector>
       <classifications>quantile</classifications>
       <classifications>jenks</classifications>
       <classifications>equalArea</classifications>
       <classifications>equalInterval</classifications>
       <classifications>uniqueInterval</classifications>
       <classifications>standardDeviation</classifications>
   </vector>
   <raster>
       <classifications>quantile</classifications>
       <classifications>jenks</classifications>
       <classifications>equalArea</classifications>
       <classifications>equalInterval</classifications>
       <classifications>uniqueInterval</classifications>
   </raster>
</capabilities>