关于geoserver:geoserver发布的wms标签图层显示不全问题

35次阅读

共计 1396 个字符,预计需要花费 4 分钟才能阅读完成。

最近遇到个问题,有客户反馈:在查看地图数据时,原本显示的点位名称,在地图放大时有些不显示了,是不是数据有问题?

排查问题后发现,数据是没问题的,可的确呈现了客户形容的状况,如下图所示:

通常 GIS 服务器会为了解决标签重叠显示的问题,默认应用标签主动避让性能,但~ 这样不应该是放大地图后显示的标签会越来越多吗,怎么还更少了呢?

地图是用 geoserver 公布的,相熟 geoserver 的同学都晓得,geoserver图层的显示次要是用图层款式来管制的,包含图层的显示层级、标签主动避让等。

于是从这个思路动手,通过一番查找。。。

发现在配置 geoserver styles 的时候,把 partials 参数设置为true, 可能解决这个问题

这个参数是什么意思呢,上面是官网文档给出的解释

大略意思是,当标签在瓦片边缘显示不全时,是否绘制。

该属性默认为 false 不绘制,这样就会呈现文章结尾形容的问题,原本显示的标签,后果地图放大后却不显示了。

partials 参数设置为 true 后,标签能够显示了,然而又呈现了新的问题,就是在瓦片边缘的标签显示不全,如下图:

又通过一番查找。。。

留神到,公布标签图层时,有个 Default Rendering Buffer 的参数,这个参数默认为空,试着将它设置为 100 后,再从新刷新图层,发现标签显示不全的问题居然解决了。

该参数的官网解释如下

我的了解是,默认状况下 WMS 的一个瓦片只解决本人范畴内的数据,当设置缓冲后,瓦片就会向外多解决一部分,相邻的瓦片会有重叠,这样就能互相呼应,防止缺失标签。

如下图所示,当 Default Rendering Buffer 设置为空时,图中框选局部是不显示的,起因是此标签对应的点位不在该瓦片所蕴含的范畴内,当设置为适合的值后,该标签就会显示。

综上,geoserver公布的 wms 标签图层显示不全问题已完满解决。

这个我的项目是老我的项目保护,应用的栅格瓦片,新我的项目中曾经开始应用矢量瓦片技术,矢量瓦片因为是在前台渲染,在标签显示上更灵便,成果更好,也举荐大家应用,具体应用能够参考如下思路:

  1. 应用 geoserver 公布矢量瓦片,这个百度一下会有很多教程。
  2. 应用 maputnik 配图获取配图款式。留神,在使 maputnikgeoserver配图是会遇到问题,具体解决形式参考如何不改源码让 maputnik 反对 geoserver
  3. 应用 mapboxgl 调用 geoserver 公布矢量瓦片图层,图层款式采纳 maputnik 导出的配图款式。

总结

  1. geoserver公布的 WMS 标签图层应用默认款式,在瓦片边缘的标签会不显示
  2. 把款式中的 partials 参数设置为true,可显示瓦片边缘的标签,然而会显示不全
  3. 在图层公布中,将 Default Rendering Buffer 参数设置为100,显示不全的标签会显示残缺

原文地址:http://gisarmory.xyz/blog/index.html?blog=GeoServerStyleLabel

关注《GIS 兵器库》,第一工夫取得更多高质量 GIS 文章。

本文章采纳 常识共享署名 - 非商业性应用 - 雷同形式共享 4.0 国内许可协定 进行许可。欢送转载、应用、从新公布,但务必保留文章署名《GIS 兵器库》(蕴含链接:http://gisarmory.xyz/blog/),不得用于商业目标,基于本文批改后的作品务必以雷同的许可公布。

正文完
 0