当前位置: 首页 > news >正文

从零开始学GeoServer源码(二)添加支持arcgis切片功能

文章目录

    • 参考文章
    • 环境
    • 背景
    • 1、配置打包好的程序
      • 1.1、下载GeoServer的war包
      • 1.2、下载GeoWebCache
      • 1.3、拷贝jar包
      • 1.4、修改配置文件
        • 1.4.1、拷贝geowebcache-arcgiscache-context.xml
        • 1.4.2、修改geowebcache-core-context.xml
        • 1.4.3、修改geowebcache-servlet.xml
      • 1.5、配置切片信息
    • 2、源码配置

参考文章

https://juejin.cn/post/7212513340508536893

环境

开发环境Win10+IDEA23.3.5+jdk11+geoserver2.24.x
使用的geowebcache组件 1.26.1

背景

GeoServer自带了GeoWebCache插件,但是他又把里面识别arcgisLayer的功能给摘了出去。所以想要只部署一个GeoServer并且支持arcgis切片的话,就需要对GeoServer进行配置。以下列出两种方式:1、配置打包好的程序;2、修改源码配置,自己打包。

1、配置打包好的程序

1.1、下载GeoServer的war包

从GeoServer官网(https://geoserver.org/download/)下载war包。目前最新稳定版是2.26.1。单击下图红框中的版本号就能进入资源页面。如果你使用的是历史版本,可以点击【Archive】找到版本号后点击版本号,就能进入对应版本的资源页面。

注:插件和geoserver最好是对应上,以免出现不可预知的问题。
在这里插入图片描述
在这里插入图片描述

1.2、下载GeoWebCache

从GeoWebCache官网找到资源链接在这里插入图片描述
进入资源下载页面:https://sourceforge.net/projects/geowebcache/files/geowebcache/
目前最新版本是1.26.1。我本地geoserver代码是2.24.x,自测使用1.26.1没问题。
在这里插入图片描述

1.3、拷贝jar包

将GeoWebCache中的gwc-arcgiscache-1.26.1.jar拷贝到GeoServer中
jar包原始目录geowebcache1.26.1\WEB-INF\lib
在这里插入图片描述
拷贝到geoserver2.26.1\WEB-INF\lib
在这里插入图片描述

1.4、修改配置文件

在geoserver安装包geoserver2.26.1\WEB-INF\lib中找到jar包gs-gwc-2.26.1.jar, 有的版本或多-SNAPSHOT如:gs-gwc-2.21-SNAPSHOT.jar。

1.4.1、拷贝geowebcache-arcgiscache-context.xml

用解压工具打开jar包,将geowebcache1.26.1\WEB-INF\geowebcache-arcgiscache-context.xml拷贝到压缩包中
在这里插入图片描述

1.4.2、修改geowebcache-core-context.xml

打开压缩包中的geowebcache-core-context.xml文件,添加如下配置

<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>

添加后的结果
在这里插入图片描述
保存后关闭文件。此时压缩工具提示更新包内容,一定记得点确定
在这里插入图片描述

1.4.3、修改geowebcache-servlet.xml

打开压缩包中的geowebcache-servlet.xml文件,添加如下配置

<import resource="geowebcache-arcgiscache-context.xml"/>

添加后的结果
在这里插入图片描述
记得保存,更新压缩包内容

1.5、配置切片信息

启动Tomcat(我本地测试用Tomcat习惯了),运行geoserver。
此时在文件夹中找到文件geoserver2.26.1\data\gwc\geowebcache.xml
配置上arcgis切片信息,保存修改。
在这里插入图片描述
之后进入geowebcache界面http://localhost:8080/geoserver2.26.1/gwc/demo。拉到页面底端,单击【Reload TileLayerConfiguration】按钮,重新加载切片图层配置信息。这样就能看到配置的图层了。
在这里插入图片描述
加载成功的页面
在这里插入图片描述
加载失败后会提示400,并附带提示信息。通常由于xml配置错误导致,请仔细检查配置信息
在这里插入图片描述
下图是配置成功的样例,显示了配置的图层
在这里插入图片描述
在geoserver中【切片图层】中也能看到添加的图层
在这里插入图片描述

2、源码配置

打开目录src/gwc/src/main/resources/,将对应版本的文件拷贝过来,并修改和两个文件
在这里插入图片描述
在gwc模块下的pom添加依赖

    <dependency><groupId>org.geowebcache</groupId><artifactId>gwc-arcgiscache</artifactId><version>1.26.1</version></dependency>

在这里插入图片描述
在工程的根pom添加依赖。可能只需要最外部配置即可,我没测试,两个文件都改了。之后直接启动即可。(启动geoserver源码请看上一篇:https://blog.csdn.net/missingshirely/article/details/139741384)
在这里插入图片描述
运行代码后会在src/web/app/src/main/webapp/data/gwc/文件下生成geowebcache.xml文件,参考1.5中提到的方法配置切片信息。
多出的标签是geoserver自动生成的信息,不用管。GeoWebCache独立应用中配置之后不会对配置信息添加内容。

相关文章:

从零开始学GeoServer源码(二)添加支持arcgis切片功能

文章目录 参考文章环境背景1、配置打包好的程序1.1、下载GeoServer的war包1.2、下载GeoWebCache1.3、拷贝jar包1.4、修改配置文件1.4.1、拷贝geowebcache-arcgiscache-context.xml1.4.2、修改geowebcache-core-context.xml1.4.3、修改geowebcache-servlet.xml 1.5、配置切片信息…...

WPF异步UI交互功能的实现方法

前面的文章我们提及过&#xff0c;异步UI的基础实现。基本思路主要是开启新的UI线程&#xff0c;并通过VisualTarget将UI线程上的Visual(即RootVisual)连接到主线程上的UI上即可渲染显示。 但是&#xff0c;之前的实现访问是没有交互能力的&#xff0c;视觉树上的UI并不能实现…...

网络基础 - 地址篇

一、IP 地址 IP 协议有两个版本&#xff0c;IPv4 和 IPv6IP 地址(IPv4 地址)是一个 4 字节&#xff0c;32 位的正整数&#xff0c;通常使用 “点分十进制” 的字符串进行表示&#xff0c;例如 192.168.0.1&#xff0c;用点分割的每一个数字表示一个字节&#xff0c;范围是 0 ~…...

# [Unity] 【游戏开发】Unity开发基础2-Unity脚本编程基础详解

Unity脚本编程是创建互动式游戏体验的核心技能之一。本文将详细讲解Unity脚本编程的基础知识,包括变量和数据类型、程序逻辑、方法等方面,并通过实例展示如何使用这些基本知识完成简单功能的实现。 1. 新建Unity脚本的基本结构 当在Unity中创建一个脚本时,Unity会生成如下基…...

Milvus实操

概念 Milvus 关键概念优化笔记 Milvus 是一个高性能、可扩展的开源向量数据库&#xff0c;专为处理海量向量数据和执行相似性搜索而设计。以下是 Milvus 中的一些核心概念及其详细解释。 1. 集合&#xff08;Collection&#xff09; 定义&#xff1a; 集合是 Milvus 中存储向…...

35 基于单片机的精确电压表DA-AD转换

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DAC0832和ADC0832检测电压&#xff0c;0到8.5V&#xff0c;设计复位电路 LED管显示实际稳压值&#xff0c;初始电压0 二、硬件资源 基于KEIL5编写C代码&#xff0c…...

JDBC 设置 PostgreSQL 查询中 any(?) 的参数

这段时间都纠缠于 Java 如何操作 PostgreSQL 数据库上&#xff0c;千方百计的为求得更好的性能。为此我们用上了 Batch, 或用 id any(?) 这种更 PostgreSQL 化的数组参数操作。其实它还有更多数组方面的花样可以玩&#xff0c;毕竟 PostgreSQL 数据库有一种广纳百川的胸怀&am…...

【11-20期】Java面试进阶:深入解析核心问题与实战案例

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java面试进阶&#xff1a;深入解析11-20期核心问题与实战案例 摘要&#xff1a; 本篇…...

C++——内存池_2

C内存池 重载 new 和 delete 运算符C内存池使用内存池的目的逐步实现内存池 重载 new 和 delete 运算符 实际开发中&#xff0c;重载new和delete的主要目的是实现内存池。内存池在高性能的服务程序中很常用。点击浏览重载 new 和 delete 运算符的内容&#xff0c;建议先看这部…...

如何使用PHP爬虫获取店铺详情:一篇详尽指南

在数字化时代&#xff0c;数据的价值不言而喻。对于企业来说&#xff0c;获取竞争对手的店铺详情、顾客评价等信息对于市场分析和决策至关重要。PHP作为一种广泛使用的服务器端脚本语言&#xff0c;结合其强大的库支持&#xff0c;使得编写爬虫程序变得简单而高效。本文将详细介…...

HTML5和CSS3新增特性

HTML5的新特性 HTML5新增的语义化标签 HTML5 的新增特性主要是针对于以前的不足&#xff0c;增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题&#xff0c;基本是 IE9 以上版本的浏览器才支持&#xff0c;如果不考虑兼容性问题&#xff0c;可以大量…...

linux运行vue编译后的项目

如果你的 Vue 项目使用了 history 模式&#xff08;而非默认的 hash 模式&#xff09;&#xff0c;在纯静态服务器中会出现类似的问题。因为 Vue Router 的 history 模式要求所有未匹配的路径都重定向到 index.html&#xff0c;以便 Vue 前端处理路径。 首先在本地执行npm run…...

论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline

论文代码开源链接&#xff1a; A Software Platform for Manipulating the Camera Imaging Pipelinehttps://karaimer.github.io/camera-pipeline/摘要&#xff1a;论文提出了一个Pipline软件平台&#xff0c;可以方便地访问相机成像Pipline的每个阶段。该软件允许修改单个模块…...

【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…...

Ubuntu下安装Qt

1.如图1所示&#xff0c;在Index of /archive上下载安装包&#xff1b; 图1 2.将图1安装包下载好之后&#xff0c;通过共享文件夹的方式拷贝到ubutntu&#xff0c;如图2所示&#xff1b; 图2 3.如图3所示&#xff0c;执行chmod x qt-creator-opensource-linux-x86_64-10.0.2.…...

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL&#xff08;丹摩智算&#xff09; 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…...

数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别

数据库&#xff08;总结自小林coding&#xff09;|索引失效的场景、慢查询、原因及如何优化&#xff1f;undo log、redo log、binlog 作用、MySQL和Redis的区别 说一下索引失效的场景&#xff1f;什么是慢查询&#xff1f;原因是什么&#xff1f;可以怎么优化&#xff1f;undo …...

Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”

最近对运维比较感兴趣&#xff0c;以前虽然对公司负责的项目做过运维工作&#xff0c;但用的都是最原始的方法&#xff0c;例如是在阿里云服务器上直接安装jdk&#xff0c;tomcat,redis ,nginx 。这种方式对不大的项目还能够支持&#xff0c;随着项目变大&#xff0c;服务增加&…...

OpenCV基本图像处理操作(六)——直方图与模版匹配

直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…...

【LLM学习笔记】第四篇:模型压缩方法——量化、剪枝、蒸馏、分解

文章目录 1. 为什么要进行模型压缩2. 模型量化2.1 常见数据类型2.2 浮点数表示2.3 线性量化2.4 非线性量化2.5 挑战2.6 实际应用 3. 模型剪枝4. 模型蒸馏4.1 模型蒸馏的基本流程4.2 模型蒸馏的优势4.3 实际应用 5. 低秩分解&#xff08;低秩近似&#xff09;5.1 基本概念5.2 实…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

基于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…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...