最近项目要用geoserver,于是想把geoserver和ArcGIS结合下,其中遇到很多坑,总结下经验。
geoserver发布ArcGIS地图服务(切片),实际上是通过geowebcache发布的,虽然网上说geoserver2.X版本之后内置了geowebcache,但是并不能很好的与ArcGIS那一套一起用。所以还是得用一个独立的geowebcache。
下载geowebcache的war包(下载地址),放在tomcat中的webapp文件夹中。启动tomcat,war包自动回解压出geowebcache程序。
在geowebcache\WEB-INF目录下的web.xml文件中增加下面参数,param-value参数指的是geowebcache缓存的位置,我这里直接指向了ArcGIS Server的缓存地址
<context-param>
<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
<param-value>E:\arcgisserver\directories\arcgiscache</param-value>
</context-param>
之后启动tomcat,会在上面的GEOWEBCACHE_CACHE_DIR地址(即:E:\arcgisserver\directories\arcgiscache)下生成一个geowebcache.xml文件,在该文件中的<layer></layer>
节点下添加如下代码
<arcgisLayer>
<name>CD:huizhouzonggui</name>
<tilingScheme>E:\\arcgisserver\\directories\\arcgiscache\\test1_huizhouzongguoTY\\Layers\\Conf.xml</tilingScheme>
<tileCachePath>E:\arcgisserver\\directories\\arcgiscache\\test1_huizhouzongguoTY\\Layers\\_alllayers</tileCachePath>
<hexZoom>false</hexZoom>
</arcgisLayer>
在geowebcahe-core-context.xml文件下增加如下代码
<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>
否则重启服务会报错:“No ArcGISCacheGridsetConfiguration could be found”(突然觉得开源真是麻烦╮(╯▽╰)╭)
重启tomcat服务,登入http://127.0.0.1:8080/geowebcache/home
点击上面的红框,进入服务列表就可以看到我们的ArcGIS服务了