本人刚接触geoserver,从安装到在线地图发布,中途遇到了还算比较多的小小问题,主要就是一些细节的问题。现将自己的经验分享,希望可以帮助大家更好的了解geoserver样式设置。
一、QGIS软件导出样式的问题
QGIS软件是一款开源的gis软件,主要就是用它来设置样式,导出为sld格式,进而应用在geoserver中,但就是在导出sld文件过程也遇到很多小问题。
1.1
字体样式不一致。QGIS与geoserver同样的字体显示效果有很大的差别,笔者查找了很多教程也没找到解决办法。geoserver样式预览界面和最终的网页显示界面字体的显示效果也有很大的差别,笔者最终找到一个办法,可以稍微减少他们的差异。即在字体周边应用掩膜,颜色为白色,尺寸1-1.5之间。
<se:Halo> 本文中一段完整的代码一<se: >开始,以</se: >结束,保证其完整准确可读性
<se:Radius>1.3</se:Radius> 代表尺寸
<se:Fill> 填充
<se:SvgParameter name="fill">#fffcfe</se:SvgParameter> 填充的颜色,二进制
</se:Fill>
</se:Halo> 至此完整的掩膜设置完毕
1.2
Qgis中设置的特殊符号,导出至sld文件中显示错误。geoserver符号填充仅支持一些简单的矩形(square)、圆(circle)、三角形等简单的图形,不支持诸如长方形、等边三角形等特殊符号,会显示如下界面的错误(即显示特殊的标记符号....没有找到):
解决办法:放弃应用这些特殊的符号,选取官网的标准sld形状。
1.3
QGIS中设置svg格式样式,导出为sld文件时,应用出错。可以简单理解为qgis中存在svg格式的样式数据,但仅仅导出至sld文件,并不能解决数据的储存问题,所以应用时便会出错。
错误提示如下(代表geoserver中找不到你应用的svg数据):
解决办法:打开QGIS的安装目录,找到svg文件的存储地址。复制至geoserver中对应工作空间下的样式存储文件夹
如下即是打开的svg格式文件
复制至geosever对应的文件夹即可:
1.4
QGIS设置图层标注的比例尺,至geoserver中无效果。qgis进行样式配置时需要选择“按规则标注”,在此基础上在设置一些具体的细节才有效果。
1.5
QGIIS背景填充后矩形方块颜色变成空白。这个问题笔者也没有找到一个比较好的解决办法,就只能导出sld文件后自行修改对应的二进制颜色值。
<se:Graphic> 依旧以<se: >开始,以</se: >结束的一段完整背景标注代码
<se:Mark> 形状
<se:WellKnownName>square</se:WellKnownName> 类别,此处即代表为矩形
<se:Fill> 内部填充
<se:SvgParameter name="fill">#4ba038</se:SvgParameter> 填充的内部颜色
</se:Fill> 内部填充
<se:Stroke> 边界填充
<se:SvgParameter name="stroke">#f26460</se:SvgParameter> 填充的边界颜色
<se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 填充的边界宽度
</se:Stroke> 边界填充
</se:Mark> 形状
<se:Size>1</se:Size>
</se:Graphic>
1.6
背景填充应用外部svg格式文件。如上文提到的将svg数据复制至geoserver对应的样式文件夹中,即可应用外部图片进行标识,这大大的提高了图标的美观度。
至此,已经将笔者在设置geoserver样式时遇到的一些问题做了简单介绍。虽然QGIS生成的sld格式样式兼容性不好,但对于刚接触geoserver的人来说,还不能独立完成sld样式代码的编写,udig相对来说又更复杂一些,所以QGIS还是一个较好的选择。
最后推荐大家看geoserver官网的样式配置手册,可以帮助我们了解geoserver中sld格式文件的要求以及限制等要求,并且能学习更多新兴的样式配置方案。