一、需求,Geoserver通过SLD配置道路线样式,并随着放大加粗,随着缩小变细
效果如下图:
二、解决,通过uom 属性指定测量单位实现
SE 1.1规范中给出的测量单位,如下:
http://www.opengeospatial.org/se/units/metre
http://www.opengeospatial.org/se/units/foot
http://www.opengeospatial.org/se/units/pixel
以下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>
参考官方文档,地址如下:https://www.osgeo.cn/geoserver-user-manual/styling/index.html