利用 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 ...
随机推荐
- 十一、springboot 配置log4j2以及打包成zip文件
前言 其实我们前面已经配置了日志,但是最近总感觉日志日志格式看的不舒服,并且每次打包都是一个jar 文件,lib都包含在jar 中,每次做很小的修改都需要重新替换jar文件,jar文件会比较大,传输起 ...
- CF296C Greg and Array 查分数组
题目链接:http://codeforces.com/problemset/problem/296/C 题意:给你n.m.k,表示n个数a[i],m个对数的操作,k个对操作的操作.m个操作:数a[l] ...
- 2017 ACM/ICPC 沈阳 G题 Infinite Fraction Path
The ant Welly now dedicates himself to urban infrastructure. He came to the kingdom of numbers and s ...
- Mac 配置 PlantUML
PlantUML简介 UML: Unified Modeling Language 统一建模语言,是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面 ...
- Selenium 4.0 Alpha更新实践
上期讲到了Selenium 4.0 Alpha更新日志,这次来实践一下更新内容. DevTools操作更加方便. Chrome录制更加方便.(未实践) 窗口管理不在依赖一个driver. 相对定位器功 ...
- 【MyBatis】配置文件提示
[MyBatis]配置文件提示 官方帮助文档:http://www.mybatis.org/mybatis-3/zh/index.html config配置 http://mybatis.org/dt ...
- Ubuntu19.10安装
# 有一说一,UI好看多了 正文开始 # 1.做U盘 # 2.修改BIOS选择U盘引导 底下有提示,F5/F6切换项目 # 3.进入引导盘 这个界面多了比19.10之前的版本多了两个选项, ...
- HyperLedger Fabric 1.4 生产环境动态添加组织及节点
网易云课堂视频在线教学,地址:https://study.163.com/course/introduction/1209401942.htm 1.1 操作概述 在“kafka生产环境部署” ...
- 牛客NOIP暑期七天营-提高组2
第一题:ACGT 题目链接:https://ac.nowcoder.com/acm/contest/931/A trie树.hash.map遍历 ①.trie树上的节点多记一个rest值表示还有多少 ...
- 曹工说Spring Boot源码(4)-- 我是怎么自定义ApplicationContext,从json文件读取bean definition的?
写在前面的话 相关背景及资源: 曹工说Spring Boot源码系列开讲了(1)-- Bean Definition到底是什么,附spring思维导图分享 工程代码地址 思维导图地址 工程结构图: 大 ...