使用geoserver发布shp和tiff数据
一、安装并启动geoserver服务
1.1 下载geoserver
进入官网下载
由于geoserver是使用Java语言开发的,所以运行需要java的环境,不同geoserver的版本号对java的版本要求不同,所以选择版本时需注意对应java的版本要求,由于我本地安装了java8,所以我选择的是2.20的版本,最新的2.23需要java11
同一版本号也有不同的安装形式,我这选择的是Platform Independent Binary,这个版本支持跨平台,且无需安装
1.2 启动服务
解压下载的包,进入bin目录,windows系统双击startup.bat即可启动服务,linux选择startup.sh即可
运行后会有大串的运行信息,最后能看到Started @xxxms表示服务启动成功

1.3 访问geoserver
在浏览器输入 http://localhost:8080/geoserver 进入服务的web控制界面,初次登陆需输入账号,geoserver提供了默认的账号,用户名为 admin,密码为 geoserver
二、创建工作区
1、点击左侧数据栏中的工作区,在右侧点击添加新的工作区

2、在新建工作区页面,依次输入Name和URI,最后点击保存即可。注意:Name不能为数字,URI必填,具体填的内容无要求

二、发布shp
2.1 准备
shape数据包含很多类型的文件,发布至少需要4个文件,分别是shp、shx、dbf、prj,其中shp存储的几何数据,shx存储的几何索引信息,dbf存储属性数据、prj存储投影信息。
将至少包含上述4个的文件放到同一目录,本文以geoserver官方提供的纽约道路数据为例。

2.2 发布
在左侧数据栏点击数据存储,在右侧点击添加新的数据存储

在新建数据源点击Shapefile

在新建矢量数据源,从上到下分别选择工作区、设置数据源名称、shp文件的路径以及dbf的字符集(一般国内都是utf-8或gbk,该参数设置如果不正确,会导致拾取到的属性中文乱码,此处用的案例是国外的,所以是ISO)

点击发布

在发布数据页面,点击边框中的从数据计算,以及Compute from native bounds,最后点击保存

点击左侧图层预览,在右侧表格中可以找到发布的图层,点击OpenLayers,可以看到发布的效果


三、发布普通tiff(<2GB)
tiff影像数据比较特殊,主要是其大小差别很大,有的有4、5个GB,甚至几十GB,小的也有几百MB,geoserver自带的GeoTiff发布功能支持2GB以下的tiff发布,其实也不是说geoserver就不能发布2GB以上的,主要是发布后,访问服务会很慢,主要是数据量太大,实时计算效率低,经过试验,2GB以下的直接发布效率还可以,2GB以上的需要提前切片(参考第4节)。
普通tiff发布跟shp类似,在数据源页面中选择GeoTIFF

然后分别设置工作区、发布的名称、文件路径,最后点击保存,在弹出的页面继续点击发布,在新页面点击保存即可

在图层预览中找到对应的图层,点击OpenLayers即可看到发布的影像
四、发布大型tiff(>=2GB)
大型tiff一般会进行金字塔层级切片,即单一大型tiff会处理成多级别的小型tiff文件,这样数据源就成了目录,geoserver默认不支持文件夹的发布,需要使用插件
点此找到对应的geoserver版本,然后进入extensions下载geoserver-xxx-pyramid-plugin.zip
下载后解压,将gt-imagepyramid-xx.jar文件拷贝到{geoserverPath}\webapps\geoserver\WEB-INF\lib下,重启geoserver服务即可
刷新web页面,此时可以在新建数据源页面发现多了ImagePyramid的选项

点击ImagePyramid设置切片后的tiff数据信息,包括工作区、数据源名称、切片文件夹路径,最后点击保存,在弹出的页面继续点击发布,在新页面点击保存即可,查看流程同其他两种类型

关于如何将tiff进行切片生成金字塔目录,我将会在另一篇基于geoserver开发发布服务的文章里介绍,本篇主要是描述geoserver web端的应用操作
相关文章:
使用geoserver发布shp和tiff数据
一、安装并启动geoserver服务 1.1 下载geoserver 进入官网下载 由于geoserver是使用Java语言开发的,所以运行需要java的环境,不同geoserver的版本号对java的版本要求不同,所以选择版本时需注意对应java的版本要求,由于我本地安…...
谷歌周彦祺:LLM浪潮中的女性科学家多面手丨智源大会嘉宾风采
导读 大模型研发竞赛如火如荼,谷歌紧随OpenAI其后推出PalM2、Gemini等系列模型。Scaling Law是否仍然适用于当下的大模型发展?科技巨头与初创企业在竞争中各有哪些优势和劣势?模型研究者应秉持哪些社会责任? 2023智源大会「基础模…...
Burp模块
Target模块 记录流量 1.Target按主机或域名分类记录 2.HTTP History 按时间顺序记录且会记录很多次 3.Target模块的作用 (1)把握网站的整体情况 (2)对一次工作的域进行分析 (3)分析网站存在的攻击面 …...
sql笔记:SQL SERVER字符串填充(标量值函数创建、标量值函数调用)
/*字符串填充 ,如果返回 -1 说明输入参数有错误*/ CREATE FUNCTION [dbo].[uf_pad_string] ( @string_unpadded VARCHAR(100), --123填充前字符串 @pad_char VARCHAR(1), --0 填充的字符串 @pad_count tinyint, --10 填充后字符串长度 @pad_p…...
python使用hTTP方法
Python中可以使用requests库来发送HTTP请求,其中包括GET、POST、PUT、DELETE等方法。下面是一个使用requests库发送HTTP请求的示例: python import requests # 发送GET请求 response requests.get(Example Domain) # 发送POST请求 data {key1: valu…...
JavaSE常用API
1. Math.round(11.5)等于多少?Math.round(- 11.5) 又等于多少? Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5然后进行取整。 2. switch 是否能作用在 byte 上,是否能作用在 long 上…...
华为OD机试之模拟商场优惠打折(Java源码)
模拟商场优惠打折 题目描述 模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。 满减券:满100减10,满200减20,满300减30,满400减40,以此类推不限制使用; 打折券&…...
5月VR大数据:Quest 2下跌超1%,其它变化不大
Hello大家好,每月一期的VR内容/硬件大数据统计又和大家见面了。 想了解VR软硬件行情么?关注这里就对了。我们会统计Steam平台的用户及内容等数据,每月初准时为你推送,不要错过喔! 本数据报告包含:Steam VR硬…...
CW32系列模数转换器(ADC)
模数转换器(ADC)的主要功能是将模拟量转换为数字量,方便MCU进行处理。下面以CW32L083为例介绍CW系列的模数转换器的特点和功能,并提供演示实例。 一、概述 CW32L083 内部集成一个 12 位精度、最高 1M SPS 转换速度的逐次逼近型模…...
电动力学专题:电磁场规范不变性与规范自由度
对称性,不变性,相对性,协变形 在现代物理学中常常被认为具有相同的含义(好拗口) 规范与规范的自由度 保证电磁场物理量不改变的情况下,有多组势可供选择,而每组势可以称为一个规范 规范不变性…...
max delay的应用场景与常见问题
max delay与min delay用来约束start points到endpoints点对点的路径长度,set_max_delay约束最大值,set_min_delay约束最小值。 max delay的-from和-to并不局限在get_pins,get_cells和get_clocks同样可以。 set_max_delay 5 -from UFF0/Q -to UFF1/D set_max_delay -from …...
非阻塞队列
非阻塞队列 首先我们要简单的理解下什么是非阻塞队列: 与阻塞队列相反,非阻塞队列的执行并不会被阻塞,无论是消费者的出队,还是生产者的入队。 在底层,非阻塞队列使用的是CAS(compare and swap)来实现线程执行的非阻塞…...
动力电池管理系统(BMS)
BMS技术 目录 BMS技术 一、BMS简介 二、BMS主要功能 1、参数检测 2、剩余电量(SOC)估计 3、充放电控制 4、热管理 5、均衡控制 6、故障诊断 7、信息监控 8、参数标定 9、CAN总线接口 三、BMS架构组成 1、BMS的拓扑架构 1、1集中式架构的B…...
ChatGPT桌面客户端支持gpt4模型,附使用说明
#软件核心功能: 1、支持OpenAI官方秘钥及API2D双秘钥使用;如果全局魔法,可以自己用官方秘钥;没魔法国内可直接使用API2D秘钥; 2、内置GPT4模型选项,如果你的官方秘钥支持可直接使用;你也可以注册…...
Vivado下时序逻辑模块的仿真
文章目录 D触发器两级D触发器带异步复位的D触发器带异步复位和同步置数的D触发器移位寄存器单口RAM伪双口RAM真双口RAM单口ROM 组合逻辑电路在逻辑功能上特点是任意时刻的输出仅仅取决于当前时刻的输入,与电路原来的状态无关。 时序逻辑在逻辑功能上的特点是任意时刻…...
ThreadLocal的使用方式
1. ThreadLocal的使用方式 (1) 在关联数据类中创建private static ThreadLocal 在下面的类中,私有静态 ThreadLocal 实例(serialNum)为调用该类的静态 SerialNum.get() 方法的每个 线程维护了一个“序列号”,该方法将返回当前…...
全面理解:C++中的指针和迭代器,以及解引用操作符(*)和箭头操作符(->)的用法
指针与迭代器的基础概念 指针: 指针是一种变量,其值为另一种类型的对象在计算机内存中的地址。你可以使用指针来直接访问和操作它指向的对象。指针的使用非常强大,但也很危险,因为你有可能错误地操作内存,这可能会导致…...
Vite 使用学习指南
Vite 的基本概念和特点 Vite 是什么,它的主要特点是什么 Vite 是一个基于 ES modules 的前端构建工具,它的主要特点包括: 快速的冷启动:Vite 采用了基于浏览器原生 ES 模块的开发模式,可以在开发时快速启动应用&…...
【算法训练(day6)】双指针模板
一.双指针算法的由来和使用场景 通常情况下我们可能会遇到在某些可遍历的集合中寻找满足某种性质的字串或元素。这时候我们采取暴力的思路就会面临多重循环。我们可以利用题目中所给的集合并利用其性质将多重循环降成一重循环。光用语言描述可能不太好理解。接下来看几个双指针…...
免费常用的API接口大全
免费常用的API接口大全 OPEN AI : ChatGPT 能够模拟人类的语言行为,与用户进行自然的交互。ChatGPT 可以用于处理多种类型的对话,包括对话机器人、问答系统和客服机器人等。它还可以用于各种自然语言处理任务,比如文本摘要、情感分…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
32位寻址与64位寻址
32位寻址与64位寻址 32位寻址是什么? 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元(地址),其核心含义与能力如下: 1. 核心定义 地址位宽:CPU或内存控制器用32位…...
ZYNQ学习记录FPGA(二)Verilog语言
一、Verilog简介 1.1 HDL(Hardware Description language) 在解释HDL之前,先来了解一下数字系统设计的流程:逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端,在这个过程中就需要用到HDL,正文…...
