Geoserver发布shp、tiff、瓦片等格式的GIS数据
这里写目录标题
- 1 发布shp矢量数据
- 1.1 添加shp作为数据源
- 1.2 发布shp图层
- 1.3 预览服务
- 1.4 配置样式
- 2 发布Postgres数据库
- 2.2 发布数据
- 3 发布 tif 栅格数据
- 3.1 添加 tif 数据源
- 3.2 发布tif数据
- 3.3 预览服务
- 3.4 配置地图样式
- 关于中文标注乱码的问题
1 发布shp矢量数据
发布shp分为两种方式:
- 单独发布指定的shp文件;(适合临时发布一个数据,测试用)
- 将一个文件夹内的shp数据统一发布。(适合同时发布多个数据,且在同一个文件夹下)
1.1 添加shp作为数据源
添加存储仓库:

根据需要选择你的数据源类型,本教程选择第一个Directory of spatial files (shapefiles)

将预先存放shp的文件夹,发布为数据源:

1.2 发布shp图层

点击发布,然后设置一些服务选项即可:

数据

Tile Caching

点击保存,即完成发布。
1.3 预览服务
在左侧的图层预览中,找到你刚刚发布的图层名字,以openlayers方式预览:


1.4 配置样式
参考官方给的 样式示例,根据需要选择一个适合的sld文件进行下载:
此处选择一个带有标签的sld文件

在Geoserver中新建样式,并上传刚刚下载的sld 样式文件,点击保存完成样式创建:

算了,你也可以直接copy下面的xml到内容框里(建议):
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:se="http://www.opengis.net/se" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" xmlns:xlink="http://www.w3.org/1999/xlink"><NamedLayer><se:Name>Province_Henan</se:Name><UserStyle><se:Name>Province_Henan</se:Name><se:FeatureTypeStyle><se:Rule><se:Name>Single symbol</se:Name><se:PolygonSymbolizer><se:Fill><se:SvgParameter name="fill">#85b66f</se:SvgParameter></se:Fill><se:Stroke><se:SvgParameter name="stroke">#232323</se:SvgParameter><se:SvgParameter name="stroke-width">1</se:SvgParameter><se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter></se:Stroke></se:PolygonSymbolizer></se:Rule><se:Rule><se:TextSymbolizer><se:Label><ogc:PropertyName>name</ogc:PropertyName></se:Label><se:Font><se:SvgParameter name="font-family">微软雅黑</se:SvgParameter><se:SvgParameter name="font-size">13</se:SvgParameter></se:Font><se:LabelPlacement><se:PointPlacement><se:AnchorPoint><se:AnchorPointX>0</se:AnchorPointX><se:AnchorPointY>0.5</se:AnchorPointY></se:AnchorPoint></se:PointPlacement></se:LabelPlacement><se:Halo><se:Radius>2</se:Radius><se:Fill><se:SvgParameter name="fill">#ffffff</se:SvgParameter></se:Fill></se:Halo><se:Fill><se:SvgParameter name="fill">#000000</se:SvgParameter></se:Fill><se:VendorOption name="maxDisplacement">1</se:VendorOption></se:TextSymbolizer></se:Rule></se:FeatureTypeStyle></UserStyle></NamedLayer>
</StyledLayerDescriptor>
在图层中,找到刚刚发布的图层:

选择刚刚创建的样式名称,点保存:

保存之后,继续预览该图层,发现已经有样式和标注了:

2 发布Postgres数据库
为了教程,新建了一个面图层,作为测试:

2.1 添加数据库作为数据源

通过IP 端口,用户名+密码,连接指定数据库test_gis:

如果你的输入都正确的话,保存之后,会自动跳转到:

2.2 发布数据
后面的发布过程与shp一样了。请参考前面的步骤。。。

3 发布 tif 栅格数据
3.1 添加 tif 数据源
添加存储仓库:

新建数据源:

选中tif文件

3.2 发布tif数据

默认选项可以不用更改,直接点保存,即完成发布。

3.3 预览服务


OK!

3.4 配置地图样式
默认的样式只有灰度,如果想让它展示五彩斑斓,参考官方样式说明 Geoserver SLD样式规范,流程如下:
根据需要下载一个sld文件:

在Geoserver中新建样式,并上传刚刚下载的sld 样式文件:

新建样式完成后,回到图层中,找到刚刚发布tif图层,给它选择样式。

选中刚刚新建的样式名字:


重新预览地图,发现已经变了颜色:

关于中文标注乱码的问题
在Linux系统上,排除编码问题后,依旧显示方框,此时查看geoserver中支持的字体,并没有中文。

因此,需要给所在的Linux系统,增加中文字体。
从当前所使用Windows系统中,copy出一些中文字体,如:

然后,将其上传至Linux服务器,可以存放到/usr/share/fonts/font_zh,并安装字体:
# 进入你存字体的目录
cd /usr/share/fonts/font_zh
# 安装
sudo apt -y install xfonts-utils fontconfig
# xfonts-utils 生产字体索引
sudo mkfontscale
sudo mkfontdir
# fontconfig 更新字体缓存
sudo fc-cache
安装好字体之后,重启一下系统,再次进入Geoserver检查,发现已经有了中文字体。
此时,图层的中文标注也可以正常显示!
相关文章:
Geoserver发布shp、tiff、瓦片等格式的GIS数据
这里写目录标题 1 发布shp矢量数据1.1 添加shp作为数据源1.2 发布shp图层1.3 预览服务1.4 配置样式 2 发布Postgres数据库2.2 发布数据 3 发布 tif 栅格数据3.1 添加 tif 数据源3.2 发布tif数据3.3 预览服务3.4 配置地图样式 关于中文标注乱码的问题 1 发布shp矢量数据 发布sh…...
读书笔记-《ON JAVA 中文版》-摘要24[第二十一章 数组]
文章目录 第二十一章 数组1. 数组特性2. 一等对象3. 返回数组4. 多维数组5. 泛型数组6. Arrays的fill方法7. Arrays的setAll方法8. 数组并行9. Arrays工具类10. 数组拷贝11. 数组比较12. 流和数组13. 数组排序14. binarySearch二分查找15. 本章小结 第二十一章 数组 1. 数组特…...
go语言基本操作---五
error接口的使用 Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型 type error interface {Error() string }package mainimport ("errors""fmt" )type Student struct {name stringid int }func …...
【sgLazyTree】自定义组件:动态懒加载el-tree树节点数据,实现增删改、懒加载及局部数据刷新。
特性 可以自定义主键、配置选项支持预定义节点图标:folder文件夹|normal普通样式多个提示文本可以自定义支持动态接口增删改节点可以自定义根节点Id可以设置最多允许添加的层级深度 sgLazyTree源码 <template><div :class"$options.name" v-lo…...
Rust个人学习笔记
感悟:感觉rust好像缝合怪,既有python的影子,又有java和cpp的影子,可能这就是新型编程语言趋势吧。而且他的各种规范很严格很规范,比java还更工程,各种规范不对都有warning。 命名规范:蛇形命名…...
Java根据身份证号码提取出省市区,JSON数据格式
package com.rdes.talents.utils;import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** Author: 更多实用源码 www.cx1314.cn* Date: 2023/9/7 …...
MySQL知识笔记——初级基础(实施工程师和DBA工作笔记)
老生长谈,MySQL具有开源、支持多语言、性能好、安全性高的特点,广受业界欢迎。 在数据爆炸式增长的年代,掌握一种数据库能够更好的提升自己的业务能力(实施工程师)。 此系列将会记录我学习和进阶SQL路上的知识…...
javaee 事务的传播行为
事务的传播行为 事务的第一个方面是传播行为(propagation behavior)。当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的…...
C#-SQLite-使用教程笔记
微软官网资料链接(可下载文档) 教程参考链接:SQLite 教程 - SQLite中文手册 项目中对应的system.dat文件可以用SQLiteStudio打开查看 参考文档:https://d7ehk.jb51.net/202008/books/SQLite_jb51.rar 总结介绍 1、下载SQLiteS…...
Tomcat详解 一:tomcat的部署
文章目录 1. Tomcat的基本介绍1.1 Tomcat是什么1.2 Tomcat的构成组件1.2.1 Web容器1.2.2 Servlet容器1.2.3 JSP容器(JAVA Scripts page) 1.3 核心功能1.3.1 Container 结构分析 1.4 配置文件1.5 Tomcat常用端口号1.6 启动和关闭Tomcat 2. 部署Tomcat服务…...
算法 - 二分
~~~~ 题目 - 整数二分需要考虑边界思路code开平方 - 浮点数二分codecode core 题目 - 整数二分需要考虑边界 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始…...
蠕虫病毒问题
蠕虫病毒处理过程 修改病毒定时时间,今天遇到的是 */30 crontab -e先修改延长时间,会提示无操作权限,执行下面的问题 chattr -l /filepath查看可疑进程,这次遇到的进程有 /tmp/***** /tmp/crontab***** ps -auxkill -9 相关进程 删除/…...
pytest笔记2: fixture
1. fixture 通常是对测试方法和测试函数,测试类整个测试文件进行初始化或是还原测试环境 # 功能函数 def multiply(a, b):return a * b # ------------ fixture---------------def setup_module(module):print("setup_module 在当前文件中所有测试用例之前&q…...
day55 补
392.判断子序列 力扣题目链接(opens new window) 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,&quo…...
CSS变量之var()函数的应用——动态修改样式 root的使用
一、css变量 body {--foo: #7F593F;--urls: ./img/xxx.jpg; }变量的名称可以用数字、汉字等,不能包含**$,[,^,(,%**等字符,变量的值也是可以使用各种属性值: 如: // 定义css变量 :r…...
索尼 toio ™应用创意开发征文|一个理想的绘画小助手
引言 toio™机器人是索尼推出的一款创意玩具,它的小巧和可编程性使其成为一个理想的绘画助手。通过编程控制机器人的运动和绘画工具,我们可以为小朋友提供一个有趣的绘画体验。 创意描述 我们可以通过JavaScript编程来控制toio™机器人的运动和绘画工具…...
java加密,使用python解密 ,使用 pysm4 报 byte greater than 16的解决方法
1,业务需要,对方需要用java进行参数加密,双方约定使用的加密方法是 SM4,对方给的key是32位,并且给出了加解密的java代码。 import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.security.Key; i…...
django后台启动CORS跨越配置
文章目录 背景什么是跨域问题?跨域问题的解决方案 Django 解决跨域问题 背景 什么是跨域问题? 跨域问题是指浏览器的同源策略限制了来自不同域的 AJAX 请求。 具体来说: 同源策略要求源相同才能正常进行 AJAX 通信。判断是否同源需要满足三个条件: 协…...
异常的顶级理解
目录 1.异常的概念与体系结构 1.1异常的体系结构 1.2异常的举例 1.3错误的举例 2.异常的分类 2.1编译时异常 2.2运行时异常 3.异常的处理 3.1异常的抛出throw 3.2try-catch捕获并处理 3.3finally 3.4 异常声明throws 4.自定义异常类 1.异常的概念与体系结构 1.1异常的…...
LinkedHashMap实现LRU缓存cache机制,Kotlin
LinkedHashMap实现LRU缓存cache机制,Kotlin LinkedHashMap的accessOrdertrue后,访问LinkedHashMap里面存储的元素,LinkedHashMap就会把该元素移动到最尾部。利用这一点,可以设置一个缓存的上限值,当存入的缓存数理超过…...
foobox-cn:让foobar2000焕发新生的界面美化方案
foobox-cn:让foobar2000焕发新生的界面美化方案 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否厌倦了foobar2000单调的默认界面?是否希望在享受高品质音乐的同时&#…...
别再只用L1/L2了!用PyTorch实战图像修复的5种高阶损失函数(含VGG19感知损失代码)
超越L1/L2:PyTorch图像修复中5种高阶损失函数的工程实践 当你在深夜调试一个图像超分辨率模型时,发现生成的图片虽然PSNR值很高,但总感觉缺少那种"真实感"——边缘不够锐利,纹理略显模糊。这时候,L1/L2损失函…...
如何一键备份QQ空间历史说说:完整数据备份与隐私保护指南
如何一键备份QQ空间历史说说:完整数据备份与隐私保护指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些记录青春的QQ空间说说会随着时间流逝而消失…...
让按钮并排布局的艺术
在前端开发中,我们经常需要面对如何让一系列的按钮并排显示而不堆叠在一起的问题。今天,我将带你深入了解如何使用CSS的Flexbox布局来解决这个问题,并通过一个具体的例子展示如何实现这一效果。 问题背景 假设我们有一个页面,包含多个按钮,这些按钮默认情况下是垂直堆叠…...
告别图库!用LiuJuan Z-Image为文章博客自动生成配图(保姆级教程)
告别图库!用LiuJuan Z-Image为文章博客自动生成配图(保姆级教程) 1. 为什么你需要这个工具? 作为一名内容创作者,我深知找配图的痛苦。记得上周为了给一篇技术文章配图,我花了整整40分钟在图库里翻找&…...
MULTISIM仿真揭秘:如何设计高可靠性的光耦隔离PMOS驱动电路
1. 光耦隔离PMOS驱动电路的设计挑战 在工业控制和高压隔离场景中,PMOS驱动电路的设计往往面临诸多挑战。我曾在多个项目中遇到过MOS管因静电击穿而损坏的情况,也经历过因开关频率不足导致系统性能下降的尴尬。这些问题归根结底都与MOS管的特性有关。 MOS…...
LFM2.5-1.2B-Thinking-GGUF开源生态初探:与Ollama等工具的对比与集成
LFM2.5-1.2B-Thinking-GGUF开源生态初探:与Ollama等工具的对比与集成 1. 开源大模型本地部署生态概览 近年来,开源大模型本地部署工具呈现百花齐放的局面。从早期的单一模型加载器,发展到如今功能丰富的模型管理生态系统,开发者…...
ESP32-S3驱动ILI9341屏幕避坑指南:从LVGL组件手动移植到流畅显示(ESP-IDF 5.4.1)
ESP32-S3驱动ILI9341屏幕避坑指南:从LVGL组件手动移植到流畅显示(ESP-IDF 5.4.1) 当你在ESP32-S3上尝试将LVGL移植到ILI9341屏幕时,可能会遇到各种奇怪的问题:内存溢出、屏幕模糊、驱动不匹配等。这些问题往往让开发者…...
从零开始!DeepSeek-R1-Distill-Qwen-1.5B完整部署流程详解
从零开始!DeepSeek-R1-Distill-Qwen-1.5B完整部署流程详解 1. 模型简介与核心优势 1.1 什么是DeepSeek-R1-Distill-Qwen-1.5B? DeepSeek-R1-Distill-Qwen-1.5B是一款经过知识蒸馏优化的轻量级语言模型,由DeepSeek团队基于Qwen-1.5B架构开发…...
别再只测烟雾了!用STM32CubeMX+MQ-2传感器,做个厨房燃气泄漏+烟雾双检测器(附完整代码)
厨房安全卫士:基于STM32CubeMX与MQ-2的燃气烟雾双模检测系统 厨房是家庭安全事故的高发区域,燃气泄漏和烟雾积聚都可能引发严重后果。传统烟雾报警器功能单一,而市面上的复合型安防设备价格昂贵。本文将带你用STM32单片机和MQ-2气敏传感器&am…...
