Geoserver中面图层Label标注重复的问题

Geoserver中面图层Label标注重复的问题

原因分析

主窗口中是使用的 WMS整屏请求渲染,看到的是单个注记(kqwebmap 没有封装提供二次开发)。

多窗口视图,基于原生的 leaflet js api 开发,L.tileLayer.wms 用来显示地图上WMS服务,它继承自TileLayer瓦片图层,Geoserver在渲染单个瓦片时,总是试图在每个瓦片中都显示一个Label标注,看到的每个瓦片中都有一个注记。

var layer3_xzq_xj = L.tileLayer.wms(compareUrl, 
{ layers: 'qxyj:xzq_xianji', 
format: 'image/png', 
transparent: true, 
version: '1.1.1', 
identify:false, 
tileSize: 512, 
})

Geoserver中面图层Label标注重复的问题_第1张图片

解决方案

修改SLD,将标注改为以面的中心点进行标注,添加如下配置,如图所示。

 

 geom
  

Geoserver中面图层Label标注重复的问题_第2张图片

修改好效果如下:

Geoserver中面图层Label标注重复的问题_第3张图片

缺点

此方法能有效的解决标注重复问题,缺点是如果Polygon较大的情况下,会出现看不见标注的情况。因为标注只会在中心点的固定位置渲染,而不会随可视范围变化。

最好的解决办法还是是改造成整屏请求显示。

你可能感兴趣的:(GIS,数学建模,算法)