利用 uDig 生成 GeoServer 可用的 SLD 渲染文件
利用 uDig 生成 GeoServer 可用的 SLD 渲染文件
uDig简介
uDig是一个 open source (EPL and BSD) 桌面应用程序框架,构建在Eclipse RCP和GeoTools(一个开源的Java GIS工具包)上的桌面GIS(地理信息系统) ;是一款开源桌面GIS软件,基于Java和Eclipse平台,可以进行shp格式地图文件的编辑和查看;是一个开源空间数据查看器/编辑器,对OpenGIS标准,关于互联网GIS、网络地图服务器和网络功能服务器有特别的加强。uDig提供一个一般的java平台来用开源组件建设空间应用。摘自百度百科
总结几个特点:
1、开源
2、构建在eclipse RCP(基于Eclipse平台(8M)运行的桌面应用)和GeoTools(一个开源的Java GIS工具包)上的桌面GIS;
3、可对shp格式地图文件的编辑和查看;
开源GIS桌面软件选择
开源 GIS 桌面比较完善的有 QGIS 和 uDig 。
QGIS 各项功能都比较强大,扩展性能比较好,支持的格式也比较丰富,通常来说属于开源 GIS 的首选。但一旦与 GeoServer 结合,由于 QGIS 不支持将配置的图层令存在 SLD 格式,因此,在配图方面,不建议使用 QGIS 。
uDig 的功能相对 QGIS 要弱上不少,但它最大的好处是能够支持常规的数据格式,如shapefile、postgis等,并且提供可视化配图界面,能够将配图效果导出为 SLD 格式,因此它在开源 GIS 的体系结构中,可以将其定位在地图配图。
因此,在配合 GeoServer 的服务的呈现方面,首先 uDig 。虽然 ArcMap 中也有对应的插件 ArcMap2SLD,但由于 ArcMap 收费使用,所以也不建议加入到开源体系中来。
安装及注意事项
下载链接 http://udig.refractions.net/download/
下载zip包,解压后直接使用,可选不同版本。
GeoServer 的 WMS 的渲染模式
GeoServer 中数据服务和渲染是分开的,有专门的 Style 选项用作存储渲染效果,其主要的技术手段是制作解析器来解析 SLD 文件。如下图,在管理界面中可以找到 Style 选项,并罗列出所有的已经上传的 SLD 样式。
在 Styles 选项中可以天添加和管理图层的样式,下图展开了一个样式,查看其结构。
从界面上可以看到其样式管理的机制。需要给样式赋予一个名称,选定一个工作区(也可以不选择,选定的话只是用作标记)选择使用的格式,基本上只有 SLD 和 ZIP 两种,实际上就是一种 SLD 是明确可用。如果已经保存有 SLD 文件,可以直接通过上传的方式来载入这个样式。如果是全新创建,则直接在 Style Editor 中进行新建。新建的过程实际上就是编写 SLD 的XML 。在最下方有验证和提交的按钮,用作检查和提交最终的图层样式。
接下来是 GeoServer 的图层中应用编写好的样式,如下图,在左侧【图层】选项中进入图层列表,在列表中选择一个发布好的图层,并展看设置,在【发布】标签中,在 WMS Settting 部分,选择 Default Styles ,使用之前定义的图层即可。如下图所示。
保存设置之后可以在图层预览中使用 OpenLayers 的方式查看效果
使用 uDig 辅助设计 SLD 文件
如果直接使用 GeoServer 自身的 Style Editor ,这样效率比较低下。直接使用uDig 可以很方便的完成可视化设计,确定所见即得的图层效果。
使用 uDig 先加载 PostGIS 的数据,如下图,在菜单中【Layer】–【Add】设置加入数据

根据向导连接 PostGIS


要选postgis的库
勾选加载的数据之后,可以在uDig 的地图界面显示了。
在 uDig 左侧的图层列表中,点击那个类似调色板的按钮,直接进入到图层样式的设置,
在 Style Editor 中选择图层对应的类型,然后设置 Style Properties 的边界、填充、标注等。保证图层效果没问题,就可以选择 XML 选项,导出 SLD 文件。
在 XML 选项中,会根据图层配置生成 SLD 的XML 结构,如下图所示
但是,这里会有一些默认的参数,例如 XML 的encoding 默认为 UTF-8,这回导致中文标注乱码,字体默认为 Arial ,这也可以直接在该界面上修改。如果不修改,默认的效果就出现乱码的中文的迹象。

由于涉及到中文字段的标注,所以笔者建议将encoding 改为 GBK2312 ,将 Arial 字体改为常见的“宋体”等。
修改后如下图所示
修改没问题之后,可以直接拷贝这段 XML ,或者通过界面中的 Export 按钮导出 SLD 文件,以供 GeoServer 使用。
注意事项:
1.uDig需要使用jdk1.8的版本安装,我一开始用的别的版本的就开不下来,功能也有问题。所以建议在电脑上多装一个jdk1.8
2.当从pg中读取大量数据时,有可能会显示不出来,可能时BUG,我当时有40多万条数据要拿过来,发现属性信息过来了,但是无法显示,无奈改用shp加载
3.设置式样时,出现了几个问题,一个是控制分级渲染,我设置最大最小比例尺没有用,设置虚线式样dash,无法导出,无奈只得在生成的sld里面自己补,如何写sld,参照文章 geoserver设置style
总结
uDig 通过其可视化界面为图层进行渲染设计,在渲染结果上可以快速的实现 SLD 格式的转化,这对于 GeoServer 来说,是非常好的辅助设计工具。
利用 uDig 生成 GeoServer 可用的 SLD 渲染文件的更多相关文章
- 利用FFmpeg生成视频缩略图 2.1.6
		
利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...
 - 基于Geoserver配置多图层地图以及利用uDig来进行样式配置
		
在GeoServer中配置多个图层的地图相对来说很容易,其步骤为: 1. 进入geoserver 2. 配置相关的FeatureTypes 3. 配置WMS内容,进入以后,主要有以下几个地方需要命名: ...
 - Java进阶(五十二)利用LOG4J生成服务日志
		
Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...
 - 9.利用msfvenom生成木马
		
这篇文章来介绍一下msf中一个生成木马的msfvenom模块. msfvenom命令行选项如下: 英文原版: 中文版: Options: -p, --payload <payload> 指 ...
 - 利用GPU实现大规模动画角色的渲染(转)
		
原文: https://www.cnblogs.com/murongxiaopifu/p/7250772.html 利用GPU实现大规模动画角色的渲染 0x00 前言 我想很多开发游戏的小伙伴都希望自 ...
 - 利用Swashbuckle生成Web API Help Pages
		
利用Swashbuckle生成Web API Help Pages 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: ...
 - Spring事务管理----声明式:利用TransactionProxyFactoryBean生成事务代理
		
通常建议采用声明式事务管理.声明式事务管理的优势非常明显:代码中无需关于关注事务逻辑,让spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换 ...
 - 利用JAVA生成二维码
		
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
 - 学习笔记:利用GDI+生成简单的验证码图片
		
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
 
随机推荐
- 洛谷 题解 P2117 【小Z的矩阵】
			
这题这么无聊,亏我还用了读入输出优化... 关键在于,这还是道黄题QWQ 掀桌而起 (╯‵□′)╯︵┻━┻ 显而易见,在i != j的情况下,a[i][j] + a[j][i]和a[j][i] + a ...
 - ARTS-S linux查看进程打开的文件数
			
当怀疑进程打开文件没有关闭时,可以反复执行以下命令,查看进程打开的文件数是否会不断增加. ls -l /proc/18707/fd | wc -l 其中18707是进程id
 - ARTS-S CentOS 7 minimal 版本安装后网络配置
			
用root登录服务器,执行 nmcli d 可以看到ethernet disconnected,网卡是处于禁用状态.执行 nmtui 选Edit a connection-Edit,选中Automat ...
 - USB视频采集系统 视频测试软件将正式发布(方便调试测试各自摄像头,RAW,RGB,YUV)
			
先上图,看看这个软件,学习fpga将近一年,了解视频图像开发方向也半年有余,不断学习不断总结,开发软件工具是为了更方便的学习新通信 主要相关知识: FPGA+SDRAM+VGA(双端口fifo技术) ...
 - Java_用*输出等腰三角形
			
// 代码............................................................... import java.util.Scanner;public ...
 - 这道Java基础题真的有坑!我求求你,认真思考后再回答。
			
本文目录 一.题是什么题? 二.阿里Java开发规范. 2.1 正例代码. 2.2 反例代码. 三.层层揭秘,为什么发生异常了呢? 3.1 第一层:异常信息解读. 3.2 第二层:抛出异常的条件解读. ...
 - 记一次 Kafka 集群线上扩容
			
前段时间收到某个 Kafka 集群的生产客户端反馈发送消息耗时很高,于是花了一段时间去排查这个问题,最后该集群进行扩容,由于某些主题的当前数据量实在太大,在对这些主题迁移过程中话费了很长一段时间,不过 ...
 - MySQL的安装、启动和基础配置 —— mac版本
			
安装 第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads/选择Community选项 第二步: ...
 - 人生苦短,我用Python(3)
			
1.对列表进行排序: (1)使用列表对象的sort()方法: 列表对象提供了sort()方法用于对原列表中的元素进行排序.排序后原列表中的元素顺序将发生改变.改变对象的sort()方法的语法格式如下: ...
 - VScode安装golang插件详细教程
			
可能是由于非科班自学编程,所以在安装插件的时候虽然参考了很多人写的教程,但是总安装不成功,在综合各位大牛的教程之后进行总结,并且亲自实践安装成功,希望能给初学编程的人一些帮助,如果有不对的地方还希望大 ...