我是 Geoserver 的新手(Tomcat 9 + Apache 2.14 中的 Geoserver 2.10.0,在 Win 10 Pro x64 上)并且有一段时间试图将道路标签设计为高速公路的盾牌,主要高速公路...
检查了 Geoserver Trainings/sld-references/cookbook 但找不到任何具有完整代码的“现实生活”示例。
使用 QGIS 2.18.1 为线条样式制作和导出 SLD,但由于不支持标签,因此使用 OSGB SLD 作为源代码:
并复制/粘贴 TextSymbolizer... /TextSymbolizer有关标签屏蔽的代码部分到 Geoserver sld 文件中 -
(也使用 se:、ogc:、se:SvgParameter 编辑原始代码)
<se:FeatureTypeStyle>
<se:Rule>
<se:Name>MARKED_TR labels</se:Name>
<se:Description>
<se:Title>MARKED_TR</se:Title>
</se:Description>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>GRMN_TYPE</ogc:PropertyName>
<ogc:Literal>MARKED_TR</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<se:MaxScaleDenominator>250000</se:MaxScaleDenominator>
<se:TextSymbolizer>
<se:Label>
<ogc:PropertyName>NAME_UTF</ogc:PropertyName>
</se:Label>
<se:Font>
<se:SvgParameter name="font-family">Arial</se:SvgParameter>
<se:SvgParameter name="font-size">9</se:SvgParameter>
<se:SvgParameter name="font-weight">bold</se:SvgParameter>
</se:Font>
<se:LabelPlacement>
<se:PointPlacement>
<se:AnchorPoint>
<se:AnchorPointX>0.5</se:AnchorPointX>
<se:AnchorPointY>0.5</se:AnchorPointY>
</se:AnchorPoint>
<se:Displacement>
<se:DisplacementX>0</se:DisplacementX>
<se:DisplacementY>0</se:DisplacementY>
</se:Displacement>
</se:PointPlacement>
</se:LabelPlacement>
<se:Fill>
<se:SvgParameter name="fill">#FFFFFF</se:SvgParameter>
</se:Fill>
**<se:Graphic>**
<se:Mark>
<se:WellKnownName>square</se:WellKnownName>
<se:Fill>
<se:SvgParameter name="fill">#009FB8</se:SvgParameter>
</se:Fill>
</se:Mark>
<se:Size>6</se:Size>
</se:Graphic>
<se:Priority>450</se:Priority>
<se:VendorOption name="graphic-resize">stretch</se:VendorOption>
<se:VendorOption name="graphic-margin">2.3</se:VendorOption>
<se:VendorOption name="maxDisplacement">200</se:VendorOption>
<se:VendorOption name="repeat">500</se:VendorOption>
<se:VendorOption name="spaceAround">10</se:VendorOption>
<se:VendorOption name="group">yes</se:VendorOption>
</se:TextSymbolizer>
</se:Rule>
</se:FeatureTypeStyle>
不幸的是,Geoserver Validation 返回错误,如屏幕截图所示: