要求在线的中间加一个箭头。百度后没发现现成的解决方案,只能自己想办法了。
考虑了一下,可能有两种方法解决:
1、在线样式下写一个点样式,用箭头表示;
2、在线样式的标注中添加一个剪头。
最后,我用第二个方法实现了这个效果,如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"
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>demoline</Name>
<UserStyle>
<Title>A orange line style</Title>
<FeatureTypeStyle>
<Rule>
<Title>orange line</Title>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#ff6600</CssParameter>
</Stroke>
</LineSymbolizer>
<TextSymbolizer>
<Label>
<![CDATA[ ]]>
</Label>
<Graphic>
<Mark>
<WellKnownName>shape://oarrow</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
</Mark>
<Size>16</Size>
</Graphic>
<VendorOption name="followLine">true</VendorOption>
<LabelPlacement>
<LinePlacement>
<PerpendicularOffset>0</PerpendicularOffset>
</LinePlacement>
</LabelPlacement>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
说明:
1、在TextSymbolizer下放一个Graphic,便会在注记后显示这个符号;
2、我用Label放了一个空格,是因为如果不放置注记的话,符号就不显示(这个应该是geoserver的特性);
3、加上followLine可以让箭头指向线的方向;
4、感觉符号的位置不太对,所以加了PerpendicularOffset来修正。
最后,点样式的方法应该也可以实现这个效果,enmmm,以后再说。