前言:
笔者因国产化需求,需要采用GeoServer发布地图服务,而原有大量的Arcgis切片服务,因此寻找利用GeoServer发布Arcgis切片的方法。但网上教程均比较古早,且互相冲突,笔者在经过几天的查阅和测试后,总结了一套相对新的发布方法,供大家交流学习。
1.Geoserver下载与安装
1)Geoserver下载
作为一款开源软件,只需去官网进行下载即可,下载地址: GeoServer
如无特殊版本需求,只要下载当前的稳定版本,如下图所示。笔者写文章时稳定版本为2.26.2,此文章以此版本为例。
2)Geowebcache下载
GeoWebCache 是一个开源的地图切片缓存服务器,广泛应用于地理信息系统(GIS)和地图服务领域,旨在通过缓存地图切片(Tile)显著提升地图服务的响应速度和性能。GeoWebCache 作为地图客户端(如浏览器、移动端应用)与地图服务器(如 GeoServer、MapServer)之间的代理,通过预先生成并存储地图切片(将地图按固定网格切割为小块图像),拦截客户端请求并直接返回缓存切片,减少实时渲染的计算量。本文需要GeoWebCache集成GeoServer中用来发布Arcgis地图服务。下载地址: GeoWebCache,如无其他需求,下载最近的即可。本文是下载了1.26.2版本。
2.集成与功能启动
1)GeoServer功能启动
解压下载的安装包,新建一个存放切片的文件夹,文件夹最好是英文,路径也应该全英文。本文新建data文件夹,作为样例。
(1)修改web.xml
打开打开GeoServer程序WEB-INF目录,如果按照此教程,应该在geoserver-2.26.2\webapps\geoserver\WEB-INF
中,找到web.xml文件,使用记事本或者notepad打开配置文件。修改如下配置:<param-name>
为固定的参数,<param-value>
为配置文件生成的文件夹地址,可以按需修改。
<context-param>
<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
<param-value>D:\softwore\geoserver\map</param-value>
</context-param>
插入如图所示地方:
(2)配置缓存文件
上一节将缓存目录路径配置完成后,启动一下GeoServer程序,系统将会在缓存目录下自动生成ArcGIS切片缓存配置文件。
首先,找到bin文件下startup启动。
可以在缓存文件生成目录查看生成的配置文件信息。此处笔者为了防止修改错误,备份了原有的geowebcache.xml文件。
修改geowebcache.xml文件,在layers标签中添加arcgisLayer标签,配置切片图层名、切片方案路径、切片缓存路径参数。name
标签为切片名称,<tilingScheme>
是arcgis的conf.xml的地址,<tileCachePath>
是arcgis切片的图层地址。
<layers>
<arcgisLayer>
<name>test</name>
<tilingScheme>arcgis/conf.xml</tilingScheme>
<tileCachePath>arcgis/_alllayers</tileCachePath>
</arcgisLayer>
</layers>
2)Geowebcache的集成
(1)jar包的拷贝
用解压软件打开geowebcache-1.25.4-war包,打开WEB-INF目录中的lib目录,找到gwc-arcgiscache-1.25.4.jar,
复制到geoserver-2.26.2\webapps\geoserver\WEB-INF\lib
中
(2)配置文件修改
在geoserver安装包\geoserver-2.26.2\webapps\geoserver\WEB-INF\lib
中找到jar包gs-gwc-2.26.2.jar.用解压文件打开
将geowebcache-1.25.4-war包中的geowebcache-arcgiscache-context.xml
拷贝到geoserver-2.26.2\webapps\geoserver\WEB-INF\lib中gs-gwc-2.26.2.jar中,并修改其中的geowebcache-core-context.xml
和geowebcache-servlet.xml
文件。
在geowebcache-core-context.xml
的文件中加入,如图所示
<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>
在geowebcache-servlet.xml
的文件中加入,如图所示
<import resource="geowebcache-arcgiscache-context.xml"/>
修改完成后点击保存,更新压缩包内容。
3.切片信息发布
如有需要添加的其他切片只需要在geowebcache.xml,配置ArcGis的切片信息即可(2.1.2内容)。启动Geoserver,登录。找到切片图层,即可看到。选择如图即可预览。
如果此时仍没有信息可以尝试在http://localhost:8080/geoserver/gwc/demo
中刷新。