【geoserver】实现符号按字段旋转
arcgis中可以将点设置为箭头,并按字段旋转;就可以只管显示该点的方位角。今天研究了一下如何使用geoserver实现这个效果,下面做个总结。
1、arcgis
首先看一下arcgis是如何实现的
第一步,将点设置为箭头
第二步,设置旋转
简单的两步就设置好了。。
需要注意的是,字段中的值是方位角,所以要旋转方式选择的是地理。
2、geoserver
下面是用geoserver实现的sld文档
<?xml version="1.0" encoding="UTF-8"?>
<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>test_font</Name>
<UserStyle>
<Title>azure square point style</Title>
<FeatureTypeStyle>
<Rule>
<Title>azure point</Title>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>shape://carrow</WellKnownName>
<Fill>
<CssParameter name="fill">#cc0000</CssParameter>
</Fill>
</Mark>
<Size>26</Size>
<Rotation>
<ogc:PropertyName>jiaodu</ogc:PropertyName>
</Rotation>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
其中,<WellKnownName>shape://carrow</WellKnownName>
代表的是用箭头显示点;<Rotation></Rotation>
是设置旋转角度,一般里边放的是一个数值,我尝试着放入字段表达式<ogc:PropertyName>jiaodu</ogc:PropertyName>
,效果居然出来了。
注意:这里的旋转是:“指定符号绕其中心点的旋转,单位为十进制度数。正值表示顺时针旋转,负值表示逆时针旋转。值可以包含表达式。默认值为0。”
因此,geoserver中的旋转相当于arcgis中的算术函数
,如果字段是方位角的话,记得要重新计算一下。