GeoServer加载使用shp数据样式
概述
上一节介绍了如何自定义shp数据要素的样式,本节将介绍如何使用这些自定义样式
GeoServer Style定义
GeoServer支持使用CSS、SLD、MBStyle等方式来定义Style,默认支持的是SLD,其它三种都需要扩展。SLD通过xml标签定义Style,虽然强大但也比较复杂、可读性差、代码量大;不好幸好可以通过第三方软件来可视化的编辑,详见上一节;
添加shp要素数据
添加要素数据时,要注意选择正确的要素编码,否则要素的中文标注信息就会乱码;可以通过查看shp数据目录中的.cpg文件来得知当前shp要素的编码;若某些非标准的shp数据中没有.cpg文件,就要通过上一节中查看要素属性内容是否乱码的方式来测试shp数据的编码。如下图,若要选择某个目录下的所有shp数据,就要将文件位置设置为shp数据所在的文件夹:
添加自定义样式至GeoServer中
选择上一节中导出的SLD样式文件,上传至GeoServer中;
注意:务必确保SLD样式与shp数据的编码一致;通常情况下,在QGIS中预览样式效果时没有乱码,就说明编码没有问题。
应用自定义样式
编辑图层 -> 发布 -> Additional Style ,选择刚才上传的样式;保存发布后,这个样式就会应用于当前编辑的图层,在图层预览中就可以查看图层样式的效果了;
中文标注乱码
导致乱码的原因通常有两种:
一是:以错误的编码添加了shp数据,或shp数据与style样式的编码不一致
二是:在QGIS中编辑要素样式时,选择了指定的字体,而GeoServer在渲染地图时无法从操作系统中找到该字体;
GeoServer可用字体
点击“服务器状态”->“可用字体”,就可以查看GeoServer中可用的所有字体。只有这些字体才能在地图中被渲染出来,如果SLD样式中指定了这些字体之外的其它字体,文字信息在地图上就会乱码或无法显示。
GeoServer默认读取的是操作系统中的所有字体,若要添加新的可用字体,只需要将字体添加操作系统中,并重启tomcat即可,详见Centos 7安装字体。