GeoServer中地图可视化提升利器之SLD知识简介

目录

前言

 一、SLD简介

1、介绍

2、SLD的版本

3、SLD的Schema说明

二、SLD中相关知识解析

1、Scheme简要说明

2、一个SLD实例

总结


前言

        在互联网上有很多精美的地图,在地图从shp或者gdb等矢量文件,经过设计人员的加工,配色,标注,符号化等等修饰加工。原始的点线面数据,在经过数据处理人员的修饰后,就变得丰富多彩,引人入胜。

        在常见的Arcgis或者Qgis等桌面产品中,支持对地图产品的符号化,在符号化同时辅以标注等信息,实现对地图样式的定制。通常,在Arcgis中,使用ArcMap设置好地图后,同时会生成地图的mxd文件。在进行地图服务发布的时候,可以将对应的mxd文件导入到服务中,即可实现样式的发布。那么在免费的商业套件GeoServer中,是怎么进行样式定制的呢?

        本文将简单介绍Geoserver中,地图样式定制功能的相关知识。本文将首先介绍SLD的基础概念,相关约束标准,其次结合一个SLD的实例进行案例讲解,帮助读者对SLD有一个直观的认识。

 一、SLD简介

1、介绍

        地理空间数据(矢量和栅格)没有内在的视觉组件。为了查看数据,必须对其进行样式设置。样式指定用于在地图上渲染数据的颜色、厚度和其他可见属性。WMS为每个数据集提供一组样式选项;但是这些选项是由服务器预先配置的,用户不能创建、检查和修改样式。

        Styled Layer Descriptor(SLD)是一个标准,它使应用程序能够在XML文档中配置如何正确地描述WMS中的层和图例。它使用符号结尾(SE)来指定特性和覆盖范围的样式。WMS的SLD配置文件通过附加操作增强WMS,以支持WFS的功能样式和WCS的覆盖范围。

        SLD对于地图的作用,类似于CSS对于HTML的作用,如果没有Css,Html的世界将是暗淡无光的,没了SLD的地图,也将失去地图独特的美感。SLD是一种描述地图图层样式的标准,一般用于WMS。一个地图不仅包含数据源组成,还需要对数据进行符号化和渲染,SLD就是这个定义地图图层符号化和渲染信息的标准。

2、SLD的版本

        sld发展到现在,已经是1.1的版本,从最开始的1.0发展而来。其实现标准参考如下:

序号SLD标准参考内容
11.0.0OGC Styled Layer Descriptor Implementation Specification, Version 1.0.0
21.1.0

OGC Symbology Encoding Implementation Specification, Version 1.1.0

OGC Styled Layer Descriptor profile of the Web Map Service Implementation Specification, Version

        需要注意的是,在GeoServer当中,根据版本的不同,其支持SLD的程度不一样,GeoServer完全执行SLD1.0.0的标准,而对于1.1.0版本来说,只执行了部分标准。一般来说,1.0.0版本已经很好的满足日常生活需要。

3、SLD的Schema说明

        sld作为一种xml形式的图层样式控制文件,采用的基于xml的定义方式,为了满足其特殊的定义需求,对其xml的内容是有严格的Schema验证的。只要是支持标准OGC的服务标准都应该对生成的sld进行数据格式的校验,在生成sld时也必须进行规范格式的创建。

        有兴趣的朋友可以在sld的schema官方定义看到,其Schema的不同历史阶段说明。

OpenGIS(r) SLD schema - ReadMe.txt
==================================OpenGIS Styled Layer Descriptor Profile of the Web Map Service Implementation SpecificationMore information on the OGC SensorML standard may be found athttp://www.opengeospatial.org/standards/sldThe most current schema are available at http://schemas.opengis.net/ .-----------------------------------------------------------------------2012-07-21  Kevin Stegemoller* v1.0 - v1.1: WARNING XLink change is NOT BACKWARD COMPATIBLE.* changed OGC XLink (xlink:simpleLink) to W3C XLink (xlink:simpleAttrs)per an approved TC and PC motion during the Dec. 2011 Brussels meeting.see http://www.opengeospatial.org/blog/1597* implement 11-025: retroactively require/add all leaf documents of anXML namespace shall explicitly <include/> the all-components schema* v1.1.0: added sldAll.xsd as the all-components document (06-135r11 #14)* v1.1.0: updated xsd:schema/@version to 1.1.0.2 (06-135r11 s#13.4)* v1.0.0: updated xsd:schema/@version to 1.0.0.2 (06-135r11 s#13.4)* v1.1: removed 1.1 because it was posted in error. The sld 1.1 URL is rewritten to 1.1.0 to preserve backward compatibility.* v0.7.x: schema were removed and archived* v1.0.20: schema were removed and archived2010-11-17  Simon Cox* v1.1: Changes to 1.1.0 create SLD 1.1.1+ added sldAll.xsd as the all-components document (06-135r9 s#14)+ created sld/1.1 version from SLD 1.1.12010-02-01  Kevin Stegemoller* v1.1.0, v1.0.20, v1.0.0, v0.7.3, v0.7.2, v0.7.1+ updated xsd:schema/@version attribute (06-135r7 s#13.4)+ update relative schema imports to absolute URLs (06-135r7 s#15)+ update/verify copyright (06-135r7 s#3.2)+ add archives (.zip) files of previous versions+ create/update ReadMe.txt (06-135r7 s#17)2007-11-28  Kevin Stegemoller* v1.1.0 Published SLD 1.1.0 schemas from OGC 05-078r4 includingCorrigendum 1 07-123r1 (Corrigendum 1 for 05-078r4)2005-11-22  Arliss Whiteside* SLD versions 0.7.2 through 1.0.20: The sets of XML Schema Documentsfor OpenGIS Styled Layer Descriptor Versions 0.7.2 through 1.0.20have been edited to reflect the corrigenda to all those OGCdocuments that is based on the change requests:OGC 05-068r1 "Store xlinks.xsd file at a fixed location"OGC 05-081r2 "Change to use relative paths"* Note: check each OGC numbered document for detailed changes.-- [ VERSION NOTES ] --------------------------------------------------OGC is incrementally changing how schemas will be hosted. A newrevision of the Specification Best Practice policy document (06-135r11)clarifies this practices.OGC is moving to host the schemas using a 2 digit version number sothat dependent documents (schemas) will not have to change each time aschema is corrected (by a corrigendum). The schemas actual versionnumber will be kept in the version attribute on the schema elementwhich will be used to signify that there has been a change to theschema. Each previous revision will be available online in a ZIParchive.The LATEST version is the M.N directory where * M is the major version* N is the minor versionThe latest bugfix version now is always in the M.N directory and documented in the version attribute on the schema element. The olderversions are now archived in the -M_N_X.zip files.Previously the OGC used M.N.C where* M is the major version* N is the minor version* C is the corrigendum versionThese older M.N.C versions will be updated using M.N.C.X where X may be a bugfix version. These schema will also be .zip archived.-- 2010-01-21  Kevin Stegemoller  updated 2012-07-21-----------------------------------------------------------------------Policies, Procedures, Terms, and Conditions of OGC(r) are availablehttp://www.opengeospatial.org/ogc/legal/ .Copyright (c) 2010 Open Geospatial Consortium.-----------------------------------------------------------------------

        上面也包含了SLD从1.0.0到1.1.0的不用版本的升级概况。

二、SLD中相关知识解析

1、Scheme简要说明

         上图以1.0.0版本的schema说明为例,在schema的要求中定义一些属性和具体的值范围。SLD-规范是采用XML定义地图显示样式,通过自定义SLD来配置地图图层渲染的可视化风格,可以设置过滤器,自定义图例等。rule是SLD最重要的一个元素,因为她允许根据给定的某个参数(使用过滤器)对数据集进行分类,所有的与分类有关的重要参数都必须在rule元素中设置。

        对于使用SLD来进行地图的自定义样式,则必须结合使用SE(Symbology Encoding)这个标准。SE是OGC的另一个标准,这个也是基于XML模式定义的,这个标准允许我们自定义不同的符号样式来表达地图上不同的要素。SLD文件使用这种语言,这样在地图渲染时地图服务可以解释由用户定义的样式。

         以上是对Schema文档的一些解析。涉及的内容比较多,感兴趣的朋友可以在官网上找到官方的定义。

2、一个SLD实例

这里分享一个SLD实例,实现对Point(点要素)的样式控制。

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><!-- a Named Layer is the basic building block of an SLD document --><NamedLayer><Name>default_point</Name><UserStyle><!-- Styles can have names, titles and abstracts --><Title>Red Square Point</Title><Abstract>A sample style that draws a red square point</Abstract><!-- FeatureTypeStyles describe how to render different features --><!-- A FeatureTypeStyle for rendering points --><FeatureTypeStyle><Rule><Name>rule1</Name><Title>Red Square Point</Title><Abstract>A 6 pixel square with a red fill and no stroke</Abstract><PointSymbolizer><Graphic><Mark><WellKnownName>square</WellKnownName><Fill><CssParameter name="fill">#FF0000</CssParameter></Fill></Mark><Size>6</Size></Graphic></PointSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer>
</StyledLayerDescriptor>

         上面SLD文件中,演示了PointSymbolizer的具体使用,对点要素设置了颜色填充样式。在GeoServer中使用以上样式渲染数据效果如下:

总结

        以上就是本文的主要内容,本文将首先介绍SLD的基础概念,相关约束标准,其次结合一个SLD的实例进行案例讲解,帮助读者对SLD有一个直观的了解。关于SLD更多的专业知识,可以在相应的官方文档中查询,行文仓促,如有不当之处,欢迎评论交流,批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4247.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker搭建nginx

一、安装Docker 1、安装&#xff1a; yum install docker 2、启动/停止/重启docker服务 systemctl docker start systemctl docker stop systemctl docker restart #开机自启动 systemctl enable docker#设置容器自启动 1.创建容器时设置 docker run -d --restartalways …

从0到1ES集群搭建实践

ES集群搭建实践 虚拟机安装 下载地址 Windows & Linux&#xff1a;WMware Workstation 16 Pro MacOS&#xff1a;WMware Fusion 构建CentOS镜像 下载系统镜像 下载地址&#xff1a;https://centos.org/download/ 选择符合符合你电脑的指令集版本&#xff0c;比如我的…

6月琐碎但值得的事情

6月份又过了&#xff0c;又到了每月总结的的时间&#xff0c;说实话我还挺喜欢这种方式&#xff0c;每个月固定的事情做。 老规矩分享一些自己每个月的一些琐碎经历&#xff0c;不一定对也不高大上&#xff0c;但是如果对你有一些启发就最好不过了。 6月主要两件事&#xff1a;…

SpringBoot项目做成Docker 镜像

1.使用Xshell5使用 put指令上传到Centos put D:\git\repository_idea\emsms\target\emsms-0.0.1-SNAPSHOT.jar 2.编辑文件 vim spring ROM java:8 ADD emsms-0.0.1-SNAPSHOT.jar dd.jar CMD java -jar dd.jar 示例&#xff1a; 3.退出并保存编辑 4.将文件打包成镜像 dock…

技术讨论:我心中TOP1的编程语言

欢迎关注博主 六月暴雪飞梨花 或加入【六月暴雪飞梨花】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术…

03双向链表

双向链表 单向链表的缺点 单向链表&#xff0c;只能是一个方向来查找&#xff0c;而双向链表可以向前或者向后查找。单向链表不能自我删除&#xff0c;需要靠辅助结点。而双向链表可以自我删除。所以我们单链表删除结点的时候&#xff0c;总要找到temp&#xff08;待删除结点…

空间曲线的切线和法平面与曲面的切平面和法线

&#xff08;一&#xff09;空间曲线的切线和法平面 1. 参数方程的形式 理解和记忆如下公式&#xff1a; 参数方程在知道偏导数的情况下&#xff0c;得到该点的切线以及法平面的公式&#xff0c;笔者可以理解但是无法证明。 2. 可以转换为参数方程的第二种形式&#xff1a…

从入门到精通:解锁Linux开发工具和编译器的力量

目录 一.编辑器vim的使用1.vim的基本概念2.vim的使用二.编译器gcc/g1.编译器的使用2.编译器是如何完成的&#xff1f;3.动态库与静态库 一.编辑器vim的使用 1.vim的基本概念 vim是一个方便编程的功能特别丰富的文本编辑器&#xff0c;凭借他简洁的三种模式以及丰富的快捷键操…

MySQL进阶SQL语句(二)

MySQL进阶SQL语句&#xff08;二&#xff09; 一、MySQL进阶SQL语句1.1 连接查询1.2 CREATE VIEW视图&#xff0c;可以被当作是虚拟表或存储查询1.3 UNION 联集1.4 CASE1.5 空值(NULL) 和 无值() 的区别1.6 正则表达式 二、存储过程2.1 存储过程定义2.2 存储过程的优点2.3 存储…

PySpark如何输入数据到Spark中?【RDD对象】

PySpark支持多种数据的输入&#xff0c;在输入完成后&#xff0c;都会得到一个&#xff1a;RDD类的对象RDD全称为弹性分布式数据集(Resilient Distributed Datasets)&#xff0c;PySpark针对数据的处理&#xff0c;都是以RDD对象作为载体&#xff0c;即&#xff1a; •数据存储…

java面试Day13

1. 有哪些注解可以注入 Bean&#xff1f;Autowired 和 Resource 的区别&#xff1f; 在 Spring 框架中&#xff0c;常用的注入 Bean 的注解包括&#xff1a; Autowired&#xff1a;自动注入&#xff0c;按照类型自动装配&#xff0c;如果有多个同类型的 Bean&#xff0c;则需要…

手撕code(3)

文章目录 迷宫最短路径和输出深度优先广度优先 48 旋转矩阵图像大数加减法146 LRU 缓存算法460 LFU 缓存算法 迷宫最短路径和输出 给定一个 n m 的二维整数数组&#xff0c;用来表示一个迷宫&#xff0c;数组中只包含 0 或 1 &#xff0c;其中 0 表示可以走的路&#xff0c;1…