2.2. 风格

代表内容的设计选择是制图学的一个关键方面。将数据呈现为可视化时使用的样式是这些选择的结果。

开放式地理空间联合体记录风格标准分为两部分:

  • 符号编码(SE) :记录“要素类型样式”,记录如何使用一系列规则绘制各个要素。

  • 样式层描述符(SLD) :记录哪些“要素类型样式”可用于图层。

这个 符号编码 标准提供了我们将用于描述样式的术语:

  • 脑卒中 :形状的边框和轮廓

  • Fill :形状内部

2.2.1. 线条符号

线条符号记录如何使用单个笔画绘制线条,包括颜色和线条宽度。

../../../_images/LineSymbolizer.svg

SLD规范提供了一个默认值 绘制线串时使用。如果需要,将使用这些颜色和宽度值。

<LineSymbolizer>
  <Stroke/>
</LineSymbolizer>

geoserver包含默认值 line.sld 提供蓝色笔画的文件。此文件在最初设置LineString层时使用。

从地理服务器 line.sld 样式:

<LineSymbolizer>
  <Stroke>
    <CssParameter name="stroke">#0000FF</CssParameter>
  </Stroke>
</LineSymbolizer>

2.2.2. 多边形符号

除了用于绘制多边形的填充之外,多边形符号化工具还会记录笔触。填充可以由颜色、图案或其他纹理组成:

SLD规范提供默认的灰色填充,但不提供笔划。如果不提供替代值,将使用这些值。

../../../_images/PolygonSymbolizer.svg

geoserver包含默认值 polygon.sld 提供灰色填充和黑色轮廓的文件。此文件将在最初创建多边形层时使用。

从地理服务器 polygon.sld 样式:

<PolygonSymbolizer>
  <Fill>
    <CssParameter name="fill">#AAAAAA</CssParameter>
  </Fill>
  <Stroke>
    <CssParameter name="stroke">#000000</CssParameter>
    <CssParameter name="stroke-width">1</CssParameter>
  </Stroke>
</PolygonSymbolizer>

2.2.3. 点符号

点符号记录用于表示点的“标记”。标记可以由字形(图标)或通用标记(圆、正方形等)定义。点符号记录用于绘制标记的笔画和填充。

../../../_images/PointSymbolizer.svg

从geoserver的默认值 point.sld 样式:

<PointSymbolizer>
  <Graphic>
    <Mark>
      <WellKnownName>square</WellKnownName>
      <Fill>
        <CssParameter name="fill">#FF0000</CssParameter>
      </Fill>
    </Mark>
    <Size>6</Size>
  </Graphic>
</PointSymbolizer>

2.2.4. 文本符号

文本符号提供如何绘制标签的详细信息,包括字体、大小和颜色信息。

../../../_images/TextSymbolizer.svg

populated_places.sld 样式:

<sld:TextSymbolizer>
    <sld:Label>
        <ogc:PropertyName>NAME</ogc:PropertyName>
    </sld:Label>
    <sld:Font>
        <sld:CssParameter name="font-family">Arial</sld:CssParameter>
        <sld:CssParameter name="font-size">10.0</sld:CssParameter>
        <sld:CssParameter name="font-style">normal</sld:CssParameter>
        <sld:CssParameter name="font-weight">bold</sld:CssParameter>
    </sld:Font>
    <sld:Halo>
        <sld:Radius>1</sld:Radius>
        <sld:Fill>
            <sld:CssParameter name="fill">#FFFFFF</sld:CssParameter>
        </sld:Fill>
    </sld:Halo>
    <sld:Fill>
        <sld:CssParameter name="fill">#000000</sld:CssParameter>
    </sld:Fill>
</sld:TextSymbolizer>

备注

这个 样式层描述符 标准使用 筛选器编码 如上图所示创建小型表达式以访问 NAME 每个城市的:

<ogc:PropertyName>NAME</ogc:PropertyName>

同样的方法可用于动态生成样式所需的任何值。

2.2.5. 栅格符号

栅格符号提供从栅格值到显示颜色的映射。这可以通过颜色表、函数或直接映射要用于显示通道的数据带来提供。

从地理服务器 dem.sld 样式:

<RasterSymbolizer>
  <Opacity>1.0</Opacity>
  <ColorMap>
    <ColorMapEntry color="#000000" quantity="-500" label="nodata" opacity="0.0" />
    <ColorMapEntry color="#AAFFAA" quantity="0" label="values" />
    <ColorMapEntry color="#00FF00" quantity="1000"/>
    <ColorMapEntry color="#FFFF00" quantity="1200" label="values" />
    <ColorMapEntry color="#FF7F00" quantity="1400" label="values" />
    <ColorMapEntry color="#BF7F3F" quantity="1600" label="values" />
    <ColorMapEntry color="#000000" quantity="2000" label="values" />
  </ColorMap>
</RasterSymbolizer>