转换

ysld允许使用渲染转换。渲染转换是服务器上在渲染管道内执行的进程,以允许动态数据转换。在geoserver中,渲染转换通常作为WPS过程公开。

例如,可以创建应用于点图层的样式,并将heatmap过程应用为渲染转换,使输出成为(栅格)heatmap。

由于渲染转换可以更改几何体类型,因此确保 symbolizer 使用的与 输出 呈现转换,而不是输入。在上面的heatmap示例中,适当的符号将是栅格符号,因为heatmap的输出是栅格。

句法

使用呈现转换的完整语法是:

feature-styles
  ...
  transform:
    name: <text>
    params: <options>
  rules:
    ...

在哪里?

财产

必修的?

描述

默认值

name

是的

呈现转换的全名,包括任何前缀(例如 vec:Heatmap

不适用

params

是的

渲染转换的所有输入参数。根据所需参数的数量和类型,内容将大不相同。

不适用

中的值 params 选项通常包括值、字符串或属性。但是,在转换中包含与渲染时地图的位置和大小有关的环境参数是很有用的。例如,以下是常用的保留环境参数:

环境参数

描述

env('wms_bbox')

请求的边界框

env('wms_width')

请求的宽度

env('wms_height')

请求的高度

考虑到这一点,以下内容 params 除非另有规定:

params:
  ...
  outputBBOX: ${env('wms_bbox')}
  outputWidth: ${env('wms_width')}
  outputHeight: ${env('wms_height')}
  ...

备注

注意转换发生了 外部rulessymbolizers 但是在里面 feature styles .

实例

热图

以下使用 vec:Heatmap 将点图层转换为热图栅格的过程:

title: Heatmap
feature-styles:
- transform:
    name: vec:Heatmap
    params:
      weightAttr: pop2000
      radiusPixels: 100
      pixelsPerCell: 10
  rules:
  - symbolizers:
    - raster:
        opacity: 0.6
        color-map:
          type: ramp
          entries:
          - ['#FFFFFF',0,0.0,nodata]
          - ['#4444FF',1,0.1,nodata]
          - ['#FF0000',1,0.5,values]
          - ['#FFFF00',1,1.0,values]

点式堆垛机

点集纸器转换可用于组合紧密在一起的点。此转换作用于点几何图形图层,并按照 cellSize 参数。生成的几何体具有属性 geom (几何结构) count (这一点所代表的特征数量)和 countUnique (这一点所代表的独特特征的数量)。这些属性可用于根据组合在一起的点数大小和标记点:

title: pointstacker
feature-styles:
- transform:
    name: vec:PointStacker
    params:
    cellSize: 100
  rules:
  - symbolizers:
    - point:
        size: ${8*sqrt(count)}
        symbols:
        - mark:
            shape: circle
            fill-color: '#EE0000'
  - filter: count > 1
    symbolizers:
    - text:
          fill-color: '#FFFFFF'
          font-family: Arial
          font-size: 10
          font-weight: bold
          label: ${count}
          placement:
              anchor: [0.5,0.75]
../../../_images/transforms_pointstacker.png

点式堆垛机