利用 uDig 生成 GeoServer 可用的 SLD 渲染文件

2023-11-16

利用 uDig 生成 GeoServer 可用的 SLD 渲染文件

导读: GeoServer 不像 ArcGIS 那样有完整的体系可以完成地图的数据整理、配图、发布整个过程,虽然它也提供了网页版的代码界面去设计通用的 SLD 格式对 WMS 图层进行渲染,但没有可视化界面的话,对于前期查看地图效果比较被动,所以必须借助第三方的桌面软件进行 SLD 格式的生成,以提升设计的效率。本文是通过 uDig 工具对 PostGIS 数据源数据进行制图显示,并输出为 SLD 文件进行修改处理,并提交到 GeoServer 中进行使用。 By 李远祥

开源GIS桌面软件选择

开源 GIS 桌面比较完善的有 QGIS 和 uDig 。
QGIS 各项功能都比较强大,扩展性能比较好,支持的格式也比较丰富,通常来说属于开源 GIS 的首选。但一旦与 GeoServer 结合,由于 QGIS 不支持将配置的图层令存在 SLD 格式,因此,在配图方面,不建议使用 QGIS 。
uDig 的功能相对 QGIS 要弱上不少,但它最大的好处是能够支持常规的数据格式,如shapefile、postgis等,并且提供可视化配图界面,能够将配图效果导出为 SLD 格式,因此它在开源 GIS 的体系结构中,可以将其定位在地图配图。

因此,在配合 GeoServer 的服务的呈现方面,首先 uDig 。虽然 ArcMap 中也有对应的插件 ArcMap2SLD,但由于 ArcMap 收费使用,所以也不建议加入到开源体系中来。

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
在这里插入图片描述

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

由于涉及到中文字段的标注,所以笔者建议将encoding 改为 GBK2312 ,将 Arial 字体改为常见的“宋体”等。

修改后如下图所示
在这里插入图片描述

修改没问题之后,可以直接拷贝这段 XML ,或者通过界面中的 Export 按钮导出 SLD 文件,以供 GeoServer 使用。
在这里插入图片描述
在这里插入图片描述

总结

uDig 通过其可视化界面为图层进行渲染设计,在渲染结果上可以快速的实现 SLD 格式的转化,这对于 GeoServer 来说,是非常好的辅助设计工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用 uDig 生成 GeoServer 可用的 SLD 渲染文件 的相关文章

  • 我所理解的DRM显示框架

    什么是DRM DRM全称是DirectRenderingManager 是linux主流的一种显示框架 支持多图层合成 为用户图层提供统一的API libdrm 来访问GPU 实现统一管理 它是为了解决多个程序对video card访问协同

随机推荐

  • 数据结构 数学知识复习

    文章目录 指数 对数 级数 模运算 证明方法 归纳法证明 反例法证明 指数 X A X B
  • 无监督聚类评价指标

    无监督聚类评价指标 文章目录 无监督聚类评价指标 SEE SC和CH 寻找k 评价指标 轮廓系数法 SC 评价指标 CH系数法 无监督聚类算法结果好坏的评价指标 Compactness 紧密性 CP Separation 间隔性 SP Da
  • 三子棋小游戏(纯C)

    N子棋 以三子棋为例 一 代码的初步框架 二 棋盘的初始化与棋盘的打印 玩家下棋与电脑下棋 输赢的判断 完整代码展现 一 代码的初步框架 我们接下来都是对game 的封装 逐步的完善 二 棋盘的初始化与棋盘的打印 上图为棋盘的打印 我们注释
  • VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。 未能将管道连接到虚拟机: 系统找不到指定的文件。...

    安装好之后不能运行虚拟机 网上的办法说以管理员方式运行 每次点太麻烦 所以打开了设置 永久配置 一键开启 哈哈具体如下 右键vmware的属性 更改所有用户设置 这里打上勾 确定保存 ok 转载于 https www cnblogs com
  • PostgreSQL数据库用户规划

    在SQL标准里 同一个模式下的对象是不能被不同的用户拥有的 而且有些数据库系统不允许创建和它们的所有者不同名的模式 如Oracle数据库 实际上 在那些只实现了标准中规定的基本模式的数据库系统里 模式和用户的概念几乎是一样的 比如Oracl
  • webpack5进阶-学习笔记

    学习连接 https www bilibili com video BV1964y1k7Hm p 19 spm id from pageDriver 1 区分环境打包 1 1 通过环境变量区分 执行webpack命令时可携带环境变量 并在w
  • 计算机视觉项目实战-背景建模与光流估计(目标识别与追踪)

    欢迎来到本博客 本次博客内容将继续讲解关于OpenCV的相关知识 作者简介 目前计算机研究生在读 主要研究方向是人工智能和群智能算法方向 目前熟悉python网页爬虫 机器学习 计算机视觉 OpenCV 群智能算法 深度学习等内容 以后可能
  • vue--组件开发

    目录 一 button 组件开发 1 1 整体目标 1 2 确定组件API 1 3 编写测试基础Button 1 4 完成type配置 1 5 完成size配置 1 6 完成事件绑定 1 7 总结 二 Editor编辑器组件开发 2 1 确
  • 你还分不清谐波失真、总谐波失真、总谐波失真加噪声吗?

    原文来自公众号 工程师看海 公众号后台回复获取资料 THD 什么是信号失真 时域上测量系统的输出波形应该与输入波形精确一致 只是幅值放大 时间延迟 这称为不失真测量 通常放大电路的输入信号是复杂的多频信号 如果放大电路对信号的不同频率分量的
  • C#配置文件读取保存

    提示 文中分为txt和注册表两种方式 二选一即可 1 安装 txt 注册表 2 引用 txt using ApeFree DataStore using ApeFree DataStore Adapters using ApeFree Da
  • jsoup解析HTML,爬取小说实例

    1 java 的 File separator 斜杠 2 jsoup解析标签 element的text 方法直接取出两个标签中间的文本 import java io File import java io FileNotFoundExcep
  • 【解决】CSS下拉菜单不会显示的问题

    导航栏的下拉菜单不会显示 但按 F5 刷新的一瞬间又能看见下拉菜单的内容 但就是不会显示出来 一开始以为是 js 代码写错或者 css 动画函数的影响 后面找到一篇博客 说这是老生常谈的问题 对于小白确实很难找到问题关键 折腾一晚上终于发现
  • 踩坑日记:Invalid prop: type check failed for prop “border“. Expected Boolean, got String withvalue “fals

    这个错误我这里报了很多 错误的意思 border这个属性 预期的布尔值 得到的字符串值为 false 下面是我的代码 我们把border这个属性前面加上一个 冒号 就好了
  • torch显存分析——如何在不关闭进程的情况下释放显存

    torch显存分析 如何在不关闭进程的情况下释放显存 1 基本概念 allocator和block 2 torch cuda的三大常用方法 3 可以释放的显存 4 无法释放的显存 5 清理 显存钉子户 一直以来 对于torch的显存管理 我
  • SQL Server错误代码及解释(二)

    2001 指定的驱动程序无效 2002 窗口样式或类别属性对此操作无效 2003 不支持请求的图元操作 2004 不支持请求的变换操作 2005 不支持请求的剪切操作 2010 指定的颜色管理模块无效 2011 制定的颜色文件配置无效 20
  • 如何模拟微信小程序请求code

    官方文档有写到获取小程序Code 调用接口获取登录凭证 code 通过凭证进而换取用户登录态信息 包括用户在当前小程序的唯一标识 openid 微信开放平台帐号下的唯一标识 unionid 若当前小程序已绑定到微信开放平台帐号 及本次登录的
  • 在使用uni-app开发小程序时@tap和click的区别

    在HbuilderX中 两者都是点击时触发事件 不同的是 click是组件被点击时触发 会有约300ms的延迟 内置处理优化了 tap是手指触摸离开时触发 没有300ms的延迟 但是会有事件穿透 编译到小程序端 click会被转换成 tap
  • 如何解决使用 django-ftpserver 上传中文文件名乱码的问题

    Django ftpserver 是一个基于 django 的 FTP 服务器应用 它可以让我们轻松地在 django 项目中集成 FTP 服务 它使用 pyftpdlib 库来实现 FTP 协议的功能 最近 我在使用 django ftp
  • Python实现简单时钟(七段管数码结构)

    首先 全部代码如下 import turtle datetime time def drawgap turtle penup turtle fd 5 def drawline draw drawgap turtle pendown if d
  • 利用 uDig 生成 GeoServer 可用的 SLD 渲染文件

    利用 uDig 生成 GeoServer 可用的 SLD 渲染文件 导读 GeoServer 不像 ArcGIS 那样有完整的体系可以完成地图的数据整理 配图 发布整个过程 虽然它也提供了网页版的代码界面去设计通用的 SLD 格式对 WMS