在进行GIS项目开发中,常使用Geoserver做为开源的地图服务器,Geoserver是一个JavaEE项目,常经过Tomcat进行部署。而GeoWebCache是一个采用Java实现用于缓存WMS-Tile(瓦片)的开源项目。当客户端请求一张新地图和Tile时,GeoWebCache将拦截这些调用而后返回缓存过的Tiles。 本文主要讲述独立部署GeoWebCache,而且复用已经切好的瓦片缓存。html
在实际项目中,须要对比较大数据量的地图切缓存,例如全国地图,而且移植复用,进行私有云部署。那么若是用GeoWebCache直接发布已经切好的缓存呢?java
1、下载安装GeoWebCache(GWC)
不知为什么,GeoWebCache官网居然没法访问,这里直接给出下载地址:<a href='https://excellmedia.dl.sourceforge.net/project/geowebcache/geowebcache/1.14.1/geowebcache-1.14.1-war.zip' target='_blank'>geowebcache-1.14.1-war.zip</a>web
这里是各个版本的列表:<a href='https://sourceforge.net/projects/geowebcache/files/geowebcache/' target='_blank'>https://sourceforge.net/projects/geowebcache/files/geowebcache</a>缓存
**注意:**安装GWC前提仍是要安装java jre(或者jdk),安装Tomcat,这里就不赘述了,不明白能够看以前的文章:基于Tomcat安装Geoservertomcat
将geowebcache的war包拷贝到tomcat的webapps目录下便可,启动tomcat,输入http://localhost:8080/geowebcache,显示以下界面说明安装成功。 服务器
点击“A list of all the layers and automatic demos”连接便可进入缓存图层列表,默认有三个图层: app
2、修改缓存目录
GWC默认的数据缓存目录在%temp%\geowebcache中,咱们将其修改至D:\GISData\gwccachewebapp
进入tomcat目录,在\webapps\geowebcache\WEB-INF中修改web.xml文件,加入以下内容:测试
<context-param> <param-name>GEOWEBCACHE_CACHE_DIR</param-name> <param-value>D:\GISData\gwccache</param-value> </context-param>
注意: 一个“context-param”节点只能有一个键值对。大数据
重启tomcat,发现D:\GISData\gwccache目录多了一些文件:
3、复用瓦片缓存文件,发布wms图层
1.将以前缓存好的瓦片拷贝到D:\GISData\gwccache目录下:
缓存文件夹名称即为要发布的图层名称,打开后层级目录以下,以gridset名称和zoom等级命名:
2.打开D:\GISData\gwccache\geowebcache.xml文件,在Layers节点下加入以下代码:
<wmsLayer> <!-- 这里的name名称要和上面缓存文件夹的名称一致 --> <name>group_yingshi_xa_f1</name> <mimeFormats> <string>image/gif</string> <string>image/jpeg</string> <string>image/png</string> <string>image/png8</string> </mimeFormats> <gridSubsets> <gridSubset> <gridSetName>EPSG:4326</gridSetName> <!-- 这里是缓存文件地图的范围 --> <extent> <coords> <double>108.940032958984</double> <double>34.2428131103516</double> <double>108.942024230957</double> <double>34.2460136413574</double> </coords> </extent> </gridSubset> </gridSubsets> <wmsUrl> <!-- 通过测试,若是你只是想发布瓦片缓存地图,这里wmslayer url能够随便写一个 --> <string>http://127.0.0.1/wms</string> </wmsUrl> </wmsLayer>
3.重启tomcat服务器,会发现图层列表中多了一个图层:
4.以png方式浏览,缓存地图加载成功:
4、问题解决
经过openlayers访问时会出现烦人的400错误,经过查看客户端代码发现,extend为[-180,-90,180,90]
咱们只需改成地图实际的extend便可:
原文出处:https://www.cnblogs.com/hao-zhang/p/10051179.html