前言
在项目中我使用了geoserver代替了arcgis server来发布地图服务,前端使用cesium加载图像,虽然通过后端java调用实现了,但是发现了几点问题:
(1)之前我的图像是用arcgis做的图,调好颜色后直接用使用arcgis发布地图服务,直接就附带了我的颜色和图例。而导出栅格数据使用geoserver发布时,没有颜色是默认的黑白色,而且没有图例。
(2)如果在导出图像时使用了强制rgb渲染栅格数据,那么虽然geoserver发布的地图服务有颜色了,但是会有黑边,加载到cesium中会带着黑边,无论如何,都不会有图例(geoserver的图例是单独的sld格式文件,arcgis并不能导出)
于是为了解决上述问题,查了一下资料准备使用QGIS来生成sld文件
解决方式
下载QGIS
我使用的版本为3.34.5
官网下载即可,下载之后首先设置中文。。。。
设置Settings”–>“选项Options”–>“通用General”,找到简体中文,然后应用重启
打开栅格图像,设置样式
直接拖进来或者工程里打开,点击波段或者色带进入符号化
渲染类型选择单波段伪彩色,我的栅格只有一个波段
如果数据是连续的,插值可以选线性图例就这样
如果你想分几类可以选等间距或者使用+-自己分类
sld样式导出
制作好了之后,选保存样式,保存为sld格式的样式文件
geoserver应用
后端可以使用代码添加样式,样式上传到工作空间后,发布地图服务时就可以指定样式的名字发布了,可以参考我之前的文章用java调用geoserver发布地图服务——(萌新记录自己终于解决的问题)-CSDN博客
如果单纯的上传样式给自己的服务的话
上传成功后,点击发布了的 样式可以应用到图层预览,看看有没有问题