geoserver (三)发布多层级天地图、谷歌地图、高德地图等底图切片服务

    arcgis发布多层级的底图切片服务的技术已经相对成熟,但是arcgis不开源,因此最近在研究geoserver, geoserver相对比较轻量,又是开源的软件,感觉也挺好用,就是插件比较多,版本比较多,在配置的时候会消耗很多时间。最近在研究geoserver发布天地图地图的切片服务,看了网上很多文档,但是还是遇到很多坑,记录下采坑的情况,本地安装的是geoserver 1.15.2。

总体来说有三种方法,多层级MBTiles 、多层级地图大图拼接、发布arcgisserver切好的切片缓存数据。

一、多层级MBTiles规范数据发布

    配置MBTiles扩展包,需要下载 geoserver-2.15-SNAPSHOT-wps-plugin 和 geoserver-2.15-SNAPSHOT-mbtiles-plugin 包,本地安装哪个geoserver的版本,就去下载对应的版本,下载完成后把解压的jar包放到geoserver安装路径下webapps/geoserver/WEB-INF/lib文件夹内,重启geoserver。

配置成功后在数据存储的目录会有MBTiles的扩展数据源。

最终因为目录文件的问题没有选择这个方法进行切片。

二、多层级地图大图拼接格式

    我们所拿到的数据是天地图各层级构建好金字塔后的tif文件,每个层级对应一份tif文件,这个主要就是要解决多层级的问题。

1、首先我们需要在Gridsets里添加下载的天地图各层级所对应的比例尺和坐标;

2、然后可以通过数据存储的GeoTIFF格式的数据加载各层级的天地图tif文件,对每个层级的文件都进行切片。也就是假设是第8层级的数据,我们只切8级的瓦片,第9级的数据,我们只切9级的瓦片。

3、所有层级的瓦片都切好后,去切片路径下将多个文件夹内的切片服务合并成一个完整的目录,然后直接去tile caching中选择完整目录的服务预览即可。

这种方法完全可以实现,但是预览的时候遇到了bug,缩放的时候会有经纬度的闪跳,后期解决了再更新。

三、GeoWebCache插件发布ArcGIS切片服务

我本地安装的是geoserver的1.15版本,本身已经继承了geowebcache的发部分功能,但是想调用arcgisserver的瓦片,还是需要在本地安装geowebcache插件,我一开始用的是与geoserver版本一致的1.15版本,但是测试后有问题, 报503错误。网上查了很多资料,最终确定用相对比较稳定的geowebcache1.10.0(war包)版本,完美发布。

1、下载好geowebcache1.10.0后,解压并将其拷贝到webapps的目录下

2、重新启动geoserver,在浏览器中一次输入http://localhost:16080/geoserver/web/ 和http://localhost:16080/geowebcache/home,如果出现下图即安装成功。

3、配置geowebcache的缓存目录: geoserver-2.15.2\webapps\geowebcache\WEB-INF目录下,打开web.xml并在context-param下添加节点,然后重启geoserver,在E:\geoserver\arcgis目录下会自动生成如下文件:

  <context-param>
	<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
	<param-value>E:\geoserver\arcgis</param-value>
  </context-param>

4:配置arcgis server的缓存切片路径

arcgisserver切片缓存的目录如上图所有,我们需在第3点生成geowebcache.xml中配置缓存路径,在layers节点下添加代码:

	</arcgisLayer>
		<arcgisLayer>
		<name>tdtLayer_map</name>
		<tilingScheme>D:\arcgisserver\directories\arcgiscache\eastChinaSea_eastSeaMap\Layers\Conf.xml</tilingScheme>
		<tileCachePath>D:\arcgisserver\directories\arcgiscache\eastChinaSea_eastSeaMap\Layers\_alllayers</tileCachePath>
		<hexZoom>false</hexZoom>
	</arcgisLayer>

网上很多教程说需要更改Conf.xml和conf.cdi文件,但是经过测试,是不需要改的。

重启geoserver服务,如果能够正常访问http://localhost:16080/geowebcache/home,则表示配置成功,如果不行,则去geoserver-2.15.2\webapps\geowebcache\WEB-INF目录下,在geowebcache-core-context.xml文件中添加代码:

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

5、预览geowebcache服务:打开http://localhost:16080/geowebcache/home ,点击

  A list of all the layers and automatic demos进入图层选择:

点击png进行预览

猜你喜欢

转载自blog.csdn.net/zhengjie0722/article/details/100034677