1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > GeoServer样式(style)设置

GeoServer样式(style)设置

时间:2021-08-06 00:39:30

相关推荐

GeoServer样式(style)设置

GeoServer样式style设置

GeoServer Style定义CSS StyleCSS Style安装CSS Style定义应用自定义样式利用其它软件配图并将Style导入GeoServer利用udig利用QGIS

GeoServer Style定义

GeoServer样式支持SLD、CSS、YSLD、MBStyle四种方式定义Style,默认支持的SLD方式,其它三种需要扩展,SLD通过xml标签定义style,虽然强大但也比较复杂,可读性差,代码量大,下面是一个定义了点的填充方式和大小的SLD Style

<?xml version="1.0" encoding="ISO-8859-1"?><StyledLayerDescriptor version="1.0.0"xsi:schemaLocation="/sld StyledLayerDescriptor.xsd"xmlns="/sld"xmlns:ogc="/ogc"xmlns:xlink="/1999/xlink"xmlns:xsi="/2001/XMLSchema-instance"><NamedLayer><Name>Simple point</Name><UserStyle><Title>GeoServer SLD Cook Book: Simple point</Title><FeatureTypeStyle><Rule><PointSymbolizer><Graphic><Mark><WellKnownName>circle</WellKnownName><Fill><CssParameter name="fill">#FF0000</CssParameter></Fill></Mark><Size>6</Size></Graphic></PointSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer></StyledLayerDescriptor>

这么长一段代码只实现了两个功能,而且根本看不懂干了什么,所以如果懂css,建议使用CSS Style,代码少,简单易读。

CSS Style

CSS Style安装
下载扩展包

wget /projects/geoserver/files/GeoServer/2.14.1/extensions/geoserver-2.14.1-css-plugin.zip

ps:这里下载的2.14.1,其它版本请在官网找对应扩展

解压并复制到$GEOSERVER_HOME/webapps/geoserver/WEB-INF/lib目录重启GeoServer

CSS Style定义

比如我有一个中国省界数据,要给它定义一个Style。打开New Style页面(Data >Styles >add a new style)

注意在Format中选择CSS

对于一个多边形来说,最直观的样式首先边界和填充色

* {stroke: #000000;stroke-width: 0.5;fill: #0099cc;}

这里定义了多边形的边界颜色为黑色,宽度是0.5,填充色为蓝色

点击validate如果提示No validation errors.再点击Apply,此时页面上方多了三个选项卡,点击Layer Preview就可以选择图层对刚才定义的样式进行预览。

CSS样式由选择器和属性构成,属性被包含在"{}“内,以上面的样式为例,选择器”*",stroke: #000000, stroke-width: 0.5, fill: #0099cc都属于属性,属性由name和value组成,之间用":“分割,”{}“把它们括起来跟在”*“后面,说明它们都属于”*"这个选择器,如果你懂CSS,这些都不用解释,和网页设计中的CSS没有区别 显示标签(label)

* {stroke: #000000;stroke-width: 0.5;fill: #0099cc;label: [name];label-anchor: 0.5 0.5;font-family: "宋体";font-fill: #000000;font-size: 14;}

也可以利用CSQL作为选择器,比如要将北京市渲染为红色,把面积大于100的填充为黄色

[name='北京市']{fill:#ff0000;fill-opacity: 0.7;}[shape_area>100]{fill:#f1f507;fill-opacity: 0.7;}

虽然并不建议在GeoServer中设置图例,但是如果需要,可以用以下方法

/* @title area>100 */[shape_area>100]{fill:#f1f507;fill-opacity: 0.7;} /* @title 北京市 */[name='北京市']{fill:#ff0000;fill-opacity: 0.7;}/* @title 省界 */* {stroke: #000000;stroke-width: 0.5;fill: #0099cc;label: [name];label-anchor: 0.5 0.5;font-family: "宋体";font-fill: #000000;font-size: 14;font-style: normal;}

更多的属性请参考CSS workshop。如果对其它的Style定义方式感兴趣,请前往官网

应用自定义样式

编辑图层,在Publishing标签中的Default Style中选择刚才定义的Style

最终样式是这样的

利用其它软件配图并将Style导入GeoServer

对大部分人来说,不管是哪种Style定义方式,可能没有时间精力完全掌握,其效率都是比较低的,如果能用一个做图软件配好图再把样式导入GeoServer可能是一种更好的选择。

udig软件就可以满足这一需求,把Style导出为SLD文件,然后在GeoServer中导入,并且udig支持多种平台,下载地址/download/

利用udig
定义样式并导出SLD文件

样式设置好之后点击xml可以把设置好的样式保存为SLD文件

在GeoServer中导入SLD文件

利用QGIS

QGIS是目前最好的开源GIS软件,支持多种平台,它可以将配置好的样式导出为SLD文件。

目前就发现这两款软件可以将地图样式导出,推荐使用QGIS

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。