利用 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 渲染文件的更多相关文章

  1. 利用FFmpeg生成视频缩略图 2.1.6

    利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...

  2. 基于Geoserver配置多图层地图以及利用uDig来进行样式配置

    在GeoServer中配置多个图层的地图相对来说很容易,其步骤为: 1. 进入geoserver 2. 配置相关的FeatureTypes 3. 配置WMS内容,进入以后,主要有以下几个地方需要命名: ...

  3. Java进阶(五十二)利用LOG4J生成服务日志

    Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...

  4. 9.利用msfvenom生成木马

    这篇文章来介绍一下msf中一个生成木马的msfvenom模块. msfvenom命令行选项如下: 英文原版: 中文版: Options: -p, --payload <payload> 指 ...

  5. 利用GPU实现大规模动画角色的渲染(转)

    原文: https://www.cnblogs.com/murongxiaopifu/p/7250772.html 利用GPU实现大规模动画角色的渲染 0x00 前言 我想很多开发游戏的小伙伴都希望自 ...

  6. 利用Swashbuckle生成Web API Help Pages

    利用Swashbuckle生成Web API Help Pages 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: ...

  7. Spring事务管理----声明式:利用TransactionProxyFactoryBean生成事务代理

    通常建议采用声明式事务管理.声明式事务管理的优势非常明显:代码中无需关于关注事务逻辑,让spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换 ...

  8. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  9. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

随机推荐

  1. 转 与App Store审核的斗智斗勇

    原文链接:http://www.cocoachina.com/bbs/read.php?tid-326229.html 提交了4.5个新的app,以及每个版本更新了十几次版本之后,总算是有那么点心得可 ...

  2. Sring+mybatis模拟银行转账

    实体类: package com.bjsxt.pojo; import java.io.Serializable; public class Account implements Serializab ...

  3. 2017 CCPC秦皇岛 L题 One Dimensions Dave

    BaoBao is trapped in a one-dimensional maze consisting of  grids arranged in a row! The grids are nu ...

  4. Coderfocers-616c

    You are given a rectangular field of n × m cells. Each cell is either empty or impassable (contains ...

  5. Mac 配置 PlantUML

    PlantUML简介 UML: Unified Modeling Language 统一建模语言,是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面 ...

  6. CentOS7.2下PXE+kickstart自动化安装系统

    一.实验环境 操作系统:CentOS Linux release 7.2.1511 (Core) 网卡地址:192.168.100.147/24 光盘镜像:CentOS-7-x86_64-Minima ...

  7. 深入理解 Java 方法

    方法(有的人喜欢叫函数)是一段可重用的代码段.

  8. 磁盘分区(GPT)

    右击 我的电脑 → 管理 → 磁盘管理 (对磁盘1进行分区)右击 磁盘1 → 初始化 磁盘1 右击 磁盘1白色部分 → 新建磁盘分区 先创建主分区(主分区最多创建4个,扩展分区最多1个) 输入分区大小 ...

  9. web性能优化指南

    前端性能优化,是每个前端必备的技能,优化自己的代码,使自己的网址可以更加快速的访问打开,减少用户等待,今天就会从几个方面说起前端性能优化的方案, 看下面的一张图,经常会被面试官问,从输入URL到页面加 ...

  10. 【Java Web开发学习】Spring发布RMI服务

    [Java 远程服务]Spring发布RMI服务 转载:https://www.cnblogs.com/yangchongxing/p/9084066.html RmiServiceExporter可 ...