修改图层样式(geoserver)

背景

GeoServer支持自定义修改样式,但是默认情况下只能自己编写SLD代码,安装插件以后可以编写CSS代码来修改样式。不过这样子搞还是很麻烦,因此想找到更便捷的方法来修改图层样式。

生成SLD文件

既然GeoServer默认情况下只接受sld文件,那我们只需要找到可以生成sld格式的图层样式即可,因此我们可以使用QGIS软件先配置图层样式,然后再将配好的样式导出到GeoServer即可。没装QGIS的自行百度,这里不再赘述了。

1.图层读入到QGIS,并配置样式
右键点击图层,选择图层属性
在这里插入图片描述
按需调整以下属性
在这里插入图片描述
如果需要某个字段标注图形,可以设置:
在这里插入图片描述
如果要利用多个字段标注图形
在这里插入图片描述

如果需要在某种比例尺范围下显示或隐藏,可设置:
在这里插入图片描述
minimum,缩小到小于该比例尺不显示,maximum则相反。
在这里插入图片描述
设置好后保存导出样式:
在这里插入图片描述
选择sld格式,保存文件即可
在这里插入图片描述
在这里插入图片描述

导入GeoServer并配置到图层

登录GeoServer找到样式菜单,进入并选择新建样式
在这里插入图片描述
在这里插入图片描述
选择之前做好的SLD文件并上传,点击保存即可
在这里插入图片描述
在这里插入图片描述
然后打开图层,进入图层后选择“”发布“”选项卡:
在这里插入图片描述
找到wms设置下的图层设置,下拉选择找到刚才上传的样式,最后保存修改即可
在这里插入图片描述
效果如下:
在这里插入图片描述

注意事项

1.图形正常显示隐藏,但文字不行的问题
如果设置了按比例尺范围显示隐藏,请在上传后给字体也设置一下显示隐藏的比例尺,否则会出现图形可以正常显示隐藏但文字不行的问题。具体方法很简单,只要在sld文件中将设置显示隐藏的代码复制到设置字体的代码当中去即可:
在这里插入图片描述
2.多字段标签显示
有时候我们会想用多个字段一起标注图层的各个要素,进而达到如下效果:
在这里插入图片描述

在QGIS里面只需要利用concat函数就行,具体如下图所示:
在这里插入图片描述
但这个concat函数在geoserver那边是不认的,因此需要别的方法。
在geoserver中可以用以下方法实现:
一是直接放上两个属性字段(注意,如果做了中文别名,字段名称需要改成中文别名,而不是原字段名,否则会报错。至于怎么给图层加中文别名,可参考我的另一篇文章: 点击这里查看

// 注意找到label标签
<se:TextSymbolizer>
   <se:Label>
          
     <ogc:PropertyName>属性A</ogc:PropertyName>
                
     <ogc:PropertyName>属性B</ogc:PropertyName>
           
   </se:Label>
</se:TextSymbolizer>

这种方法的效果将是:

//两属性横排拼接,中间空格分隔
属性A   属性B

二是利用concat函数,方法如下:

<se:TextSymbolizer>
   <se:Label>
      <ogc:Function name="strConcat">  //调用concat函数
        <ogc:Function name="strConcat">
        <ogc:PropertyName>属性A</ogc:PropertyName>
        <ogc:Literal>||</ogc:Literal>  //拼接固定字符串“||”
        </ogc:Function>
        <ogc:PropertyName>属性B</ogc:PropertyName>
      </ogc:Function>
   </se:Label>
</se:TextSymbolizer>

最后实现效果:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值