geoserver是应用很广的地图服务器,但是如何在geoserver中设置随着比例尺变化而变化的地图样式呢?这就要自己写geoserver的sld了 。
下面的样式是为室内地图的面要素设置的,该面要素的label标签会随着比例尺的变化而改变字体,且该label标签会根据图层的lblrotate属性进行旋转。在sld样式中添加了一个
<sld:VendorOption name="spaceAround">-5</sld:VendorOption>
属性,该属性是设置label的外包举行是否允许重叠的,设置为负值为允许重叠。
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
<sld:UserLayer>
<sld:LayerFeatureConstraints>
<sld:FeatureTypeConstraint/>
</sld:LayerFeatureConstraints>
<sld:UserStyle>
<sld:Name>tingchewei</sld:Name>
<sld:FeatureTypeStyle>
<sld:Name>group 0</sld:Name>
<sld:FeatureTypeName>Feature</sld:FeatureTypeName>
<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
<sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>
<sld:Rule>
<sld:Name>Large</sld:Name>
<sld:MaxScaleDenominator>200.0</sld:MaxScaleDenominator>
<sld:PolygonSymbolizer>
<sld:Fill>
<sld:CssParameter name="fill">#FFE7A6</sld:CssParameter>
</sld:Fill>
<sld:Stroke>
<sld:CssParameter name="stroke">#E8D1AE</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.2</sld:CssParameter>
</sld:Stroke>
</sld:PolygonSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>number</ogc:PropertyName>
</s

本文介绍了如何在geoserver中通过SLD(Styled Layer Descriptor)为室内地图的面要素创建比例尺相关样式。内容包括面要素标签如何随比例尺变化调整字体,并基于图层属性实现标签旋转。同时,文中提到了sld中防止label重叠的属性设置,通过设置负值允许标签重叠。
最低0.47元/天 解锁文章
618

被折叠的 条评论
为什么被折叠?



