1.简单点
将点的样式设置为直径为 6 像素的红色圆圈
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <Mark>
6 <WellKnownName>circle</WellKnownName>
7 <Fill>
8 <CssParameter name="fill">#FF0000</CssParameter>
9 </Fill>
10 </Mark>
11 <Size>6</Size>
12 </Graphic>
13 </PointSymbolizer>
14 </Rule>
15 </FeatureTypeStyle>
。样式点通过(第 6-8 行)完成。第 6 行将符号的形状指定为圆形,第 11 行将填充颜色确定为红色 ()。第 <> 行将图形的大小(直径)设置为 <> 像素。
<Rule>``<FeatureTypeStyle>``<Rule>``<FeatureTypeStyle>``<PointSymbolizer>``#FF0000
2.描边的简单点
本示例在简单点周围添加一个描边(或边框),描边涂成黑色,粗细为 2 像素。
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <Mark>
6 <WellKnownName>circle</WellKnownName>
7 <Fill>
8 <CssParameter name="fill">#FF0000</CssParameter>
9 </Fill>
10 <Stroke>
11 <CssParameter name="stroke">#000000</CssParameter>
12 <CssParameter name="stroke-width">2</CssParameter>
13 </Stroke>
14 </Mark>
15 <Size>6</Size>
16 </Graphic>
17 </PointSymbolizer>
18 </Rule>
19 </FeatureTypeStyle>
第 10-13 行指定描边,第 11 行将颜色设置为黑色 (),第 12 行将宽度设置为 2 像素。
#000000
3.透明三角形
本示例绘制一个三角形,创建与“带描边的简单点示例相同的黑色描边,并将三角形的填充设置为不透明度的 20%(大部分是透明的)。
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <Mark>
6 <WellKnownName>triangle</WellKnownName>
7 <Fill>
8 <CssParameter name="fill">#009900</CssParameter>
9 <CssParameter name="fill-opacity">0.2</CssParameter>
10 </Fill>
11 <Stroke>
12 <CssParameter name="stroke">#000000</CssParameter>
13 <CssParameter name="stroke-width">2</CssParameter>
14 </Stroke>
15 </Mark>
16 <Size>12</Size>
17 </Graphic>
18 </PointSymbolizer>
19 </Rule>
20 </FeatureTypeStyle>
第 6 行再次将形状 三角形 设置。第 8 行将填充颜色设置为深绿色 (),第 9 行将不透明度设置为 0.2(20% 不透明度)。不透明度值 1 表示绘制的形状 100% 不透明,而不透明度值 0 表示绘制的形状不透明度为 0% 或完全透明。值 0.2(20% 不透明)表示点的填充部分采用其下方绘制的任何颜色和样式。在此示例中,由于背景为白色,因此深绿色看起来更亮。如果将点强加在深色背景上,则生成的颜色会更暗。第 12-13 行将描边颜色设置为黑色 (),宽度设置为 2 像素。最后,第 16 行将点的大小设置为直径为 12 像素。
#009900``#000000
点为图形
本示例将每个点的样式设置为图形,而不是简单形状。
法典
View and download the full "Point as graphic" SLD
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <ExternalGraphic>
6 <OnlineResource
7 xlink:type="simple"
8 xlink:href="smileyface.png" />
9 <Format>image/png</Format>
10 </ExternalGraphic>
11 <Size>32</Size>
12 </Graphic>
13 </PointSymbolizer>
14 </Rule>
15 </FeatureTypeStyle>
详
此样式使用图形而不是简单形状来呈现点。在 SLD 中,这称为 ,以将其与渲染器“内部”常用的形状(如正方形和圆形)区分开来。第 5-10 行指定此图形的详细信息。第 8 行设置图形的路径和文件名,而第 9 行指示图形的格式(MIME 类型)(图像/png)。在此示例中,图形包含在与 SLD 相同的目录中,因此第 8 行中不需要路径信息,尽管如果需要,可以使用完整的 URL。第 11 行确定所显示图形的大小;这可以独立于图形本身的尺寸进行设置,尽管在这种情况下它们是相同的(32 像素)。如果图形为矩形,则该值将仅应用于图形的高度, 宽度按比例缩放。<ExternalGraphic>``<Size>
带有默认标签的点
本示例显示“简单”点上的文本标签,该标签显示该点的“name”属性。这是在没有任何其他自定义的情况下标签的显示方式。
法典
View and download the full "Point with default label" SLD
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <Mark>
6 <WellKnownName>circle</WellKnownName>
7 <Fill>
8 <CssParameter name="fill">#FF0000</CssParameter>
9 </Fill>
10 </Mark>
11 <Size>6</Size>
12 </Graphic>
13 </PointSymbolizer>
14 <TextSymbolizer>
15 <Label>
16 <ogc:PropertyName>name</ogc:PropertyName>
17 </Label>
18 <Fill>
19 <CssParameter name="fill">#000000</CssParameter>
20 </Fill>
21 </TextSymbolizer>
22 </Rule>
23 </FeatureTypeStyle>
详
包含 的第 3-13 行与上面的简单点示例相同。标签设置在第 14-27 行中。第 15-17 行确定要在标签中显示的文本,在本例中为“name”属性的值。(如有必要,请参阅示例点图层部分中的属性表。第 19 行设置文本颜色。有关标签的所有其他详细信息都设置为渲染器默认值,此处为Times New Roman字体,字体颜色为黑色,字体大小为10像素。标签的左下角与点的中心对齐。<PointSymbolizer>``<TextSymbolizer>
带有样式标签的点
本示例改进了“带默认标签的点”示例的标签样式,方法是将标签居中置于点上方,并提供不同的字体名称和大小。
法典
View and download the full "Point with styled label" SLD
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <Mark>
6 <WellKnownName>circle</WellKnownName>
7 <Fill>
8 <CssParameter name="fill">#FF0000</CssParameter>
9 </Fill>
10 </Mark>
11 <Size>6</Size>
12 </Graphic>
13 </PointSymbolizer>
14 <TextSymbolizer>
15 <Label>
16 <ogc:PropertyName>name</ogc:PropertyName>
17 </Label>
18 <Font>
19 <CssParameter name="font-family">Arial</CssParameter>
20 <CssParameter name="font-size">12</CssParameter>
21 <CssParameter name="font-style">normal</CssParameter>
22 <CssParameter name="font-weight">bold</CssParameter>
23 </Font>
24 <LabelPlacement>
25 <PointPlacement>
26 <AnchorPoint>
27 <AnchorPointX>0.5</AnchorPointX>
28 <AnchorPointY>0.0</AnchorPointY>
29 </AnchorPoint>
30 <Displacement>
31 <DisplacementX>0</DisplacementX>
32 <DisplacementY>5</DisplacementY>
33 </Displacement>
34 </PointPlacement>
35 </LabelPlacement>
36 <Fill>
37 <CssParameter name="fill">#000000</CssParameter>
38 </Fill>
39 </TextSymbolizer>
40 </Rule>
41 </FeatureTypeStyle>
详
在此示例中,第 3-13 行与上面的简单点示例相同。第 14-39 行包含的有关标签样式的更多详细信息,而不是上一个示例“具有默认标签的点”。第 15-17 行再次将“name”属性指定为要显示的文本。第 18-23 行设置字体信息:第 19 行将字体系列设置为“Arial”,第 20 行将字体大小设置为 12,第 21 行将字体样式设置为“正常”(而不是“斜体”或“倾斜”),第 22 行将字体粗细设置为“粗体****”(而不是“正常”)。第 24-35 行 () 确定标签相对于点的位置。(第 26-29 行)设置标签和点之间的交点,此处(第 27-28 行)将点设置为水平轴居中 (0.5) 和底部与标签垂直对齐 (0.0)。还有(第 30-33 行),它设置标签相对于线条的偏移量,在本例中,水平方向为 0 像素(第 31 行),垂直方向为 5 像素(第 32 行)。最后,第 37 行将标签的字体颜色设置为黑色 ()。<TextSymbolizer>``<LabelPlacement>``<AnchorPoint>``<Displacement>``#000000
结果是放置在每个点上方的居中粗体标签。
带有旋转标签的点
本示例以上一个示例“带样式标签的点”为基础,将标签旋转 45 度,将标签定位到远离点的位置,并将标签的颜色更改为紫色。
法典
View and download the full "Point with rotated label" SLD
1 <FeatureTypeStyle>
2 <Rule>
3 <PointSymbolizer>
4 <Graphic>
5 <Mark>
6 <WellKnownName>circle</WellKnownName>
7 <Fill>
8 <CssParameter name="fill">#FF0000</CssParameter>
9 </Fill>
10 </Mark>
11 <Size>6</Size>
12 </Graphic>
13 </PointSymbolizer>
14 <TextSymbolizer>
15 <Label>
16 <ogc:PropertyName>name</ogc:PropertyName>
17 </Label>
18 <Font>
19 <CssParameter name="font-family">Arial</CssParameter>
20 <CssParameter name="font-size">12</CssParameter>
21 <CssParameter name="font-style">normal</CssParameter>
22 <CssParameter name="font-weight">bold</CssParameter>
23 </Font>
24 <LabelPlacement>
25 <PointPlacement>
26 <AnchorPoint>
27 <AnchorPointX>0.5</AnchorPointX>
28 <AnchorPointY>0.0</AnchorPointY>
29 </AnchorPoint>
30 <Displacement>
31 <DisplacementX>0</DisplacementX>
32 <DisplacementY>25</DisplacementY>
33 </Displacement>
34 <Rotation>-45</Rotation>
35 </PointPlacement>
36 </LabelPlacement>
37 <Fill>
38 <CssParameter name="fill">#990099</CssParameter>
39 </Fill>
40 </TextSymbolizer>
41 </Rule>
42 </FeatureTypeStyle>
详
此示例类似于带有样式标签的点,但存在三个重要区别。第 32 行指定 25 像素的垂直位移。第 34 行指定逆时针旋转“-45”或 45 度。(旋转值顺时针增加,这就是该值为负的原因。最后,第 38 行将字体颜色设置为紫色阴影 ()。#99099
请注意,在渲染期间,置换在旋转之前生效,因此在此示例中,25 像素的垂直置换本身旋转了 45 度。
基于属性的点
本示例根据人口 (“pop”) 属性的值更改符号的大小。
法典
View and download the full "Attribute-based point" SLD
1 <FeatureTypeStyle>
2 <Rule>
3 <Name>SmallPop</Name>
4 <Title>1 to 50000</Title>
5 <ogc:Filter>
6 <ogc:PropertyIsLessThan>
7 <ogc:PropertyName>pop</ogc:PropertyName>
8 <ogc:Literal>50000</ogc:Literal>
9 </ogc:PropertyIsLessThan>
10 </ogc:Filter>
11 <PointSymbolizer>
12 <Graphic>
13 <Mark>
14 <WellKnownName>circle</WellKnownName>
15 <Fill>
16 <CssParameter name="fill">#0033CC</CssParameter>
17 </Fill>
18 </Mark>
19 <Size>8</Size>
20 </Graphic>
21 </PointSymbolizer>
22 </Rule>
23 <Rule>
24 <Name>MediumPop</Name>
25 <Title>50000 to 100000</Title>
26 <ogc:Filter>
27 <ogc:And>
28 <ogc:PropertyIsGreaterThanOrEqualTo>
29 <ogc:PropertyName>pop</ogc:PropertyName>
30 <ogc:Literal>50000</ogc:Literal>
31 </ogc:PropertyIsGreaterThanOrEqualTo>
32 <ogc:PropertyIsLessThan>
33 <ogc:PropertyName>pop</ogc:PropertyName>
34 <ogc:Literal>100000</ogc:Literal>
35 </ogc:PropertyIsLessThan>
36 </ogc:And>
37 </ogc:Filter>
38 <PointSymbolizer>
39 <Graphic>
40 <Mark>
41 <WellKnownName>circle</WellKnownName>
42 <Fill>
43 <CssParameter name="fill">#0033CC</CssParameter>
44 </Fill>
45 </Mark>
46 <Size>12</Size>
47 </Graphic>
48 </PointSymbolizer>
49 </Rule>
50 <Rule>
51 <Name>LargePop</Name>
52 <Title>Greater than 100000</Title>
53 <ogc:Filter>
54 <ogc:PropertyIsGreaterThanOrEqualTo>
55 <ogc:PropertyName>pop</ogc:PropertyName>
56 <ogc:Literal>100000</ogc:Literal>
57 </ogc:PropertyIsGreaterThanOrEqualTo>
58 </ogc:Filter>
59 <PointSymbolizer>
60 <Graphic>
61 <Mark>
62 <WellKnownName>circle</WellKnownName>
63 <Fill>
64 <CssParameter name="fill">#0033CC</CssParameter>
65 </Fill>
66 </Mark>
67 <Size>16</Size>
68 </Graphic>
69 </PointSymbolizer>
70 </Rule>
71 </FeatureTypeStyle>
详
注意
请参阅示例点图层以查看此数据的属性。此示例避免了标签以简化样式,但您可以参考示例带样式标签的点以查看哪些属性对应于哪些点。
此样式包含三个规则。每个点都会根据每个点的人口值 (“pop”) 属性来改变样式,值越小,圆圈越大,圆圈越大。<Rule>
这三条规则的设计如下:
| 规则顺序 | 规则名称 | 人口(“人口”) | 大小 |
|---|---|---|---|
| 1 | 小流行音乐 | 少于 50,000 | 8 |
| 2 | 中流行 | 50,000 至 100,000 | 12 |
| 3 | 大流行音乐 | 大于 100,000 | 16 |
在这种情况下,规则的顺序无关紧要,因为每个形状仅由单个规则呈现。
第一条规则位于第 2-22 行,用于指定人口属性小于 50,000 的点的样式。第 5-10 行设置此筛选器,第 6-9 行设置“小于”筛选器,第 7 行表示属性(“pop”),第 8 行设置值 50,000。符号为圆形(第 14 行),颜色为深蓝色(第 16 行),大小为直径 8 像素(第 19 行)。****#0033CC
第二条规则位于第 23-49 行,用于指定人口属性大于或等于 50,000 且小于 100,000 的点的样式。人口过滤器设置在第 26-37 行。此筛选器比第一个规则中的筛选器长,因为需要指定两个条件而不是一个:“大于或等于”筛选器和“小于”筛选器。请注意第 27 行和第 36 行。这要求两个筛选器都必须为 true 才能应用规则。图形的大小在第 12 行设置为 46 像素。所有其他样式指令都与第一条规则相同。And
第三条规则位于第 50-70 行,用于指定人口属性大于或等于 100,000 的点的样式。人口过滤器设置在第 53-58 行,唯一的其他区别是圆的大小,在此规则(第 67 行)中为 16 像素。
这种风格的结果是人口较多的城市具有更大的点。
基于缩放的点
本示例更改不同缩放级别的点样式。
法典
View and download the full "Zoom-based point" SLD
1 <FeatureTypeStyle>
2 <Rule>
3 <Name>Large</Name>
4 <MaxScaleDenominator>160000000</MaxScaleDenominator>
5 <PointSymbolizer>
6 <Graphic>
7 <Mark>
8 <WellKnownName>circle</WellKnownName>
9 <Fill>
10 <CssParameter name="fill">#CC3300</CssParameter>
11 </Fill>
12 </Mark>
13 <Size>12</Size>
14 </Graphic>
15 </PointSymbolizer>
16 </Rule>
17 <Rule>
18 <Name>Medium</Name>
19 <MinScaleDenominator>160000000</MinScaleDenominator>
20 <MaxScaleDenominator>320000000</MaxScaleDenominator>
21 <PointSymbolizer>
22 <Graphic>
23 <Mark>
24 <WellKnownName>circle</WellKnownName>
25 <Fill>
26 <CssParameter name="fill">#CC3300</CssParameter>
27 </Fill>
28 </Mark>
29 <Size>8</Size>
30 </Graphic>
31 </PointSymbolizer>
32 </Rule>
33 <Rule>
34 <Name>Small</Name>
35 <MinScaleDenominator>320000000</MinScaleDenominator>
36 <PointSymbolizer>
37 <Graphic>
38 <Mark>
39 <WellKnownName>circle</WellKnownName>
40 <Fill>
41 <CssParameter name="fill">#CC3300</CssParameter>
42 </Fill>
43 </Mark>
44 <Size>4</Size>
45 </Graphic>
46 </PointSymbolizer>
47 </Rule>
48 </FeatureTypeStyle>
详
创建外观自然的地图时,通常需要在较高的缩放级别下使形状变大。本示例设置点的样式,使其大小根据缩放级别(或更准确地说,比例分母)而变化。比例分母是指地图的比例。比例分母为 10,000 表示地图的比例为 1:10,000(以地图投影为单位)。
注意
确定要使用的适当比例分母(缩放级别)超出了此示例的范围。
此样式包含三个规则。这三条规则的设计如下:
| 规则顺序 | 规则名称 | 刻度分母 | 点大小 |
|---|---|---|---|
| 1 | 大 | 1:160,000,000以下 | 12 |
| 2 | 中等 | 1:160,000,000 至 1:320,000,000 | 8 |
| 3 | 小 | 大于 1:320,000,000 | 4 |
这些规则的顺序无关紧要,因为每个规则中计价的刻度不重叠。
第一条规则(第 2-16 行)适用于最小比例分母,对应于视图“放大”的时间。比例规则设置在第 4 行,因此该规则将应用于比例分母为 160,000,000 或更小的任何地图。该规则绘制一个圆(第 8 行),颜色为红色(第 10 行),大小为 12 像素(第 13 行)。****#CC3300
第二条规则(第 17-32 行)是中间比例分母,对应于视图“部分缩放”的时间。比例规则设置在第 19-20 行,因此该规则将应用于比例分母介于 160,000,000 和 320,000,000 之间的任何地图。(包含和排除,因此正好 320,000,000 的缩放级别在这里不适用。除了比例之外,此规则与第一个规则之间的唯一区别是符号的大小,在第 8 行设置为 29 像素。<MinScaleDenominator>``<MaxScaleDenominator>
第三条规则(第 33-47 行)是最大比例分母,对应于地图“缩小”的时间。比例规则设置在第 35 行,因此该规则将应用于比例分母为 320,000,000 或更大的任何地图。同样,此规则与其他规则之间的唯一其他区别是符号的大小,在第 4 行设置为 44 像素。
这种样式的结果是,点在放大时绘制得更大,在缩小时绘制得更小。