SLD文件可以控制geoserver的样式管理,这里专门针对点位进行设计,首先点位的设计需要用到这面这个大标签
之前的项目中已经用到了很多关于面的样式管理,这里新学习的是关于点的样式管理
PointSymbolizer
参考资料地址:https://docs.geoserver.org/stable/en/user/styling/sld/reference/pointsymbolizer.html
一、基础语法
<PointSymbolizer>
包含一个可选 <Geometry>
元素, 其中 Graphic>
是必需元素。
二、Geometry几何体标签
该<Geometry>
元素是可选的。 如果存在,则指定要从中获取要设置样式的几何的 featuretype 属性 使用元素 "<PropertyName>
。 另请参阅 SLD for GeoServer 扩展模块中的几何变换,以指定几何图形。
(目前用不到)
三、Graphic图形标签
符号系统是使用<Graphic>
元素指定的。 符号由 或 元素指定 <ExternalGraphic>
和 ·<Mark>
。
<ExternalGraphic>
是图像文件(格式为 PNG 或 SVG),其中包含定义如何呈现符号的形状和颜色信息。<Mark>
是矢量形状,其描边和填充在符号化器中显式定义。
该元素有五个可能的子元素,其中 <ExternalGraphic>
和 ·<Mark>
必须指定其中一个, 其他则是可选的
TAG | 必填? | 描述 |
---|---|---|
<ExternalGraphic> | 二选一) | 指定要用作元件的外部图像文件。 |
<Mark> | 二选一 | 指定要用作符号的命名形状。 |
<Opacity> | 不 | 指定符号的不透明度(透明度)。 值范围从0 (完全透明)到(完全 1 不透明)。 值可以包含表达式。 默认值为 1 (opaque)。 |
<Size> | 不 | 指定符号的大小(以像素为单位)。 当与图像文件一起使用时,这将指定图像的高度,并相应地缩放宽度。 如果省略,则使用本机符号大小。 值可以包含表达式。 |
<Rotation> | 不 | 指定符号围绕其中心点的旋转(以十进制度为单位)。 正值表示顺时针方向旋转, 负值表示逆时针旋转。 值可以包含表达式。 缺省值为 0 。 |
3.1 ExternalGraphic 外部图形 标签
<ExternalGraphic>
是图像文件(格式为 PNG 或 SVG),其中包含定义如何呈现符号的形状和颜色信息。 有关用于指定外部图形的 GeoServer 扩展模块,请参阅 GeoServer 中的图形符号系统。
包含以下子元素
TAG | 必填? | 描述 |
---|---|---|
<OnlineResource> | 是 | 该 xlink:href 属性指定图像文件的位置。 该值可以是相对于 SLD 目录的 URL 或本地路径名。 该值可以包含以 分隔的 CQL 表达式${ } 。 该属性 xlink:type="simple" 也是必需的。 该元素不包含任何内容。 |
<Format> | 是 | 图像格式的 MIME 类型。 支持大多数标准 Web 图像格式。 常见的 MIME 类型有 image/png image/jpeg image/gif 和 image/svg+xml |
举个例子:
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:type="simple" xlink:href="/flag.svg"/>
<se:Format>image/svg+xml</se:Format>
</se:ExternalGraphic>
</se:Graphic
PS:其中,还可以使用配置给SVG文件直接上色,比如
/flag.svg?fill=%2300ffff&fill-opacity=1&outline=%23ffffff&outline-opacity=1&outline-width=0
3.2 Mark标记
<Mark>
是由众所周知的名称标识的预定义矢量形状。
- 它们的填充和描边可以在 SLD 中显式定义。
- 支持是形状有 “circle” 、 、 “square” “triangle”、 “star” "cross"或 “x”
该<Mark>
元素包含以下子元素:
TAG | 必填? | 描述 |
---|---|---|
<WellKnownName> | 不 | 形状的名称。 标准 SLD 形状为 circle 、 square 、 triangle 、 star cross 或 x 。 缺省值为 square 。 |
<Fill> | 不 | 指定符号的填充方式(对于闭合形状)。 选项用于 <CssParameter name="fill"> 指定纯色填充颜色,或用于 <GraphicFill> 平铺图形填充。 有关 PolygonSymbolizer 完整语法,请参阅 Fill。 |
<Stroke> | 不 | 指定符号线条的绘制方式。 某些选项<CssParameter name="stroke"> 用于指定描边颜色,或用于 <GraphicStroke> 重复图形。 有关 LineSymbolizer 完整语法,请参阅 Stroke。 |
PS:fill标签和stroke标签是于描绘图形时一样会用到的参数
举个例子:
<se:Graphic>
<se:Mark>
<se:WellKnownName>circle</se:WellKnownName>
<se:Fill>
<se:SvgParameter name="fill">#ffffff</se:SvgParameter>
<se:SvgParameter name="fill-opacity">0.85</se:SvgParameter>
</se:Fill>
<se:Stroke>
<se:SvgParameter name="stroke">#e31a1c</se:SvgParameter>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
</se:Stroke>
</se:Mark>
<se:Size>19</se:Size>
</se:Graphic>