以地面单位指定符号大小¶
SLD 1.0规范允许以单个度量单位给出符号大小:像素。这意味着符号的大小在所有缩放级别上都是相同的(这通常是所需的行为)。
符号编码1.1规范提供了 uom
属性对 Symbolizer
元素。这允许以米或英尺为单位指定样式参数大小,以及默认的屏幕像素。当使用地面单位时,样式化元素的屏幕大小会随着地图放大而增大。GeoServer支持SE 1.1 uom
其扩展SLD 1.0支持中的属性。
备注
GeoServer 2.1.0正式支持此扩展功能。如果 -DenableDpiUomRescaling=true
为JVM指定了系统变量。
的值 uom
属性是一个指示所需单元的URI。支持的测量单位为SE 1.1规范中给出的单位:
http://www.opengeospatial.org/se/units/metre
http://www.opengeospatial.org/se/units/foot
http://www.opengeospatial.org/se/units/pixel
备注
这个 px
当前不支持参数值的重写修饰符。
例子¶
以下SLD显示 uom
用于指定 LineSymbolizer
单位:米:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>5m blue line</Name>
<UserStyle>
<Title>tm blue line</Title>
<Abstract>Default line style, 5m wide blue</Abstract>
<FeatureTypeStyle>
<Rule>
<Title>Blue Line, 5m large</Title>
<LineSymbolizer uom="http://www.opengeospatial.org/se/units/metre">
<Stroke>
<CssParameter name="stroke">#0000FF</CssParameter>
<CssParameter name="stroke-width">5</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
将样式应用于 tiger:tiger_roads
数据集显示随着地图放大,线条宽度如何增加:


