前两天有个自定义配图项目,仿照百度样式使用GeoServer+SLD渲染OSM的数据,然后通过标准WMS服务在客户端加载,使用QGIS加载效果如下:
然后同事用OpenLayers做了一个类似预览的页面,然后发现很多标签显示不出来,但是QGIS却没有问题,最后发现原因是他加载WMS服务所用的数据源为TileWMS,数据源更换为ImageWMS后显示正常。
两者的区别和作用:
TileWMS
使用瓦片方式加载,适合大面积地图显示,加载效率高。ImageWMS
使用单张图片的方式加载,适合小面积或需要精确展示的场景。
然后同事还是想用TileWMS加载,经过研究发现SLD的TextSymbolizer有这个一个额外参数,
<VendorOption name="partials">true</VendorOption>
官方文档解释:
通过在TextSymbolizer节点末尾添加这个参数,实验后TileWMS的方式也可以正常显示,记录一下,留给有需要的人。