一开始发布完shp文件之后,前端渲染发现地名重复,如下图所示,之前一直以为前端问题,昨天通过geoserver的style配置解决了这个问题。
网上查到的资料都是添加下面的代码
<sld:Geometry>
<ogc:Function name="centroid">
<ogc:PropertyName>the_geom</ogc:PropertyName>
</ogc:Function>
</sld:Geometry>
我添加之后不管用,然后我把style文件复制到了之前提到的工具udig中的xml进行编辑,发现经过udig的转化,成了如下的代码
<sld:Geometry>
<ogc:Function name="strConcat">
<ogc:Function name="centroid">
<ogc:PropertyName>the_geom</ogc:PropertyName>
</ogc:Function>
<ogc:Literal/>
</ogc:Function>
</sld:Geometry>
多了几行代码,我把这个粘贴到了geoserver的style中,发现是地名不重复了,但是出现了另外一个问题
,地图中的地名出现了不同程度的偏移,并且有的地名竟然不显示了,需要放大到一定程度才显示地名,如下所示:
接着我把上面刚刚加的代码删除掉,加上了
<sld:VendorOption name="group">yes</sld:VendorOption>
再次刷新,发现地名偏移解决了,并且地名重复问题也解决!!!
补充:::以上的代码全部添加在 sld:TextSymbolizer 标签中,别的地方会报错,还有如果你添加了不管用,可能是格式的问题,可以尝试去udig中调整一下文件的格式,直接粘贴进去geoserver中,这样就可以解决了。