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

文章目录

参考文章

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文件,添加如下配置

xml 复制代码
<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>

添加后的结果

保存后关闭文件。此时压缩工具提示更新包内容,一定记得点确定

1.4.3、修改geowebcache-servlet.xml

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

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添加依赖

yaml 复制代码
    <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独立应用中配置之后不会对配置信息添加内容。

相关推荐
GIS思维2 天前
ArcGIS Pro地块图斑顺序编号(手绘线顺序快速编号)-004
gis·arcgispro·图斑编号
城市数据匠3 天前
31【干货】Arcgis属性表常用查询表达式实战大全
arcgis·gis·cad·国土空间规划·自然资源局
GIS数据转换器4 天前
当三维地理信息遇上气象预警:电网安全如何实现“先知先觉”?
人工智能·科技·安全·gis·智慧城市·交互
GIS工具-gistools20214 天前
Open Source Geospatial Content Management System -GeoNode
开源·gis·server
爱看书的小沐6 天前
【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)
c++·qt·gis·opengl·glfw·glut·二维地图
爱地球的曲奇12 天前
【ArcGISPro学习笔记】布局输出时图例总是有省略号怎么办?
笔记·学习·gis
星火撩猿12 天前
GisWeb实战笔记(1)基于 Vue 3 + Vite + CesiumJS搭建gis开发环境
笔记·gis·地图·cesiumjs
城市数据匠20 天前
25【干货】在Arcgis中根据字段属性重新排序并自动编号的方法(二)
arcgis·gis·城市规划·国土空间规划·自然资源局
维维180-3121-145520 天前
基于ArcGIS的洪水灾害普查、风险评估及淹没制图技术研究
arcgis·gis·遥感·流域·水土
城市数据匠21 天前
26 Arcgis软件常用工具有哪些
arcgis·gis