GeoWebCache(GWC )是各一个能够聚合wms,wfs,gml等诸多服务并能缓存再发布的开源java程序。能够配合openlayers一起使用做GIS开发。
全部文件及功能说明
在根目录下共有2个文件夹3个xml文件和1个properties文件。
Classes文件夹下是一些类文件,其中geowebcache.xml文件就在classses文件夹下,这个文件是所有wms配置的核心文件,以下会详细说明。
Lib文件下是所有要用到的jar包
WEB-INF/web.xml
它用来配置servlet,它的作用很小,但是它定义GWC (GeoWebCache)的缓存路径。
WEB-INF/geowebcache-servlet.xml
这个文件是Spring框架用来调用 java 代码和创建GWC缓存程序的。在这个文件里你可以改变的主要是GWC寻找配置文件的路径,或者告诉GWC从一个WMS内容文档自动配置自己。以后你将可以通过定义服务的java beans来添加新的服务。
WEB-INF/acegi-config.xml文件基本不需要改动。
Properties文件中存放的是用户名和密码以及用户角色(相对于tomcat)
使用的主要文件
在使用GWC时,主要使用到有两个文件,分别是WEB-INF/classes/geowebcache.xml文件和WEB-INF/geowebcache-servlet.xml 文件。
WEB-INF/classes/geowebcache.xml 是使用最多的一个文件,关于wms的配置都在个文件中,是手动定义地图图层的主要的配置文件。
添加、修改WMS图层
打开WEB-INF/classes/geowebcache.xml文件在<layers>与</layers>之间新添加一个<wmsLayer>和</wmsLayer>的一对标签,其中的主要用到的节点详细配置如表1.
节点 | 描述 | 配置说明 | 备注 |
name | 对外发布的名称 | 对外的图层名称,还对应磁盘缓存文件夹名 |
|
mimeFormats | 对外发布图片格式 | 支持 image/png, image/jpeg, application/vnd.google-earth.kml+xml 等 |
|
srs | 源 WMS 的 SRS 参数 | 0,4326,900913 |
|
dataBounds | 源 WMS 的数据范围 | Double 型,可以是地方坐标系 |
|
gridBounds | 源 WMS 的格网范围 | 划分网格的范围,支持地方坐标系 |
|
zoomStart | 对外的第一级比例尺 | Int 型数字 |
|
zoomStop | 对外的最后一级比例尺 | Int 型数字,与上面的一起可以替换 resolutions 标签对, |
|
wmsUrl | 源 Wms 的 url 地址 | 源 wms 的 url 地址 |
|
wmsLayers | 要缓存的源 wms 的图层 | 要叠加在一起源 wms 的图层,可以是一个或多个 |
|
resolutions | 对外的比例尺解决方案 | 每个像素所代表的长度, unit/pixel, 当已配置这个节点时, zoomStart 和 zoomStop 便不起作用 |
|
表1.WMSLayer 的主要使用的节点以及相关配置说明
配置示例:
<wmsLayer> <name>CQYJ_XX_PTP@CQ</name> <mimeFormats> <string>image/png</string> <string>image/jpeg</string> </mimeFormats> <grids> <entry> <srs> <number>4326</number> </srs> <grid> <srs> <number>4326</number> </srs> <dataBounds> <coords> <double>105.030000</double> <double>28.120000</double> <double>110.299000</double> <double>32.19000</double> </coords> </dataBounds> <gridBounds> <coords> <double>105.030000</double> <double>28.120000</double> <double>110.299000</double> <double>32.19000</double> </coords> </gridBounds> <zoomStart>0</zoomStart> <zoomStop>10</zoomStop> </grid> </entry> </grids> <wmsUrl> <string>http://192.168.5.110:7090/ogc/smwms</string> </wmsUrl> <wmsLayers>CQYJ_XX_PTP@CQ</wmsLayers> <wmsStyles></wmsStyles> <metaWidthHeight> <int>3</int> <int>3</int> </metaWidthHeight> <tiled>false</tiled> <transparent>true</transparent> <bgColor></bgColor> <palette></palette> <expireCache>7200</expireCache> <expireClients>240</expireClients> </wmsLayer>
删除WMS
除了删除上步中所添加的wmslayer节点外,还必须根据上步配置的name名称到缓存目录里删除该文件夹以及其中包涵的所有文件。
配置wms的其他属性
打开WEB-INF/geowebcache-servlet.xml,找到id为”gwcWMSConfig”<bean>节点,将
<constructor-arg value="http://192.168.5.110:7090/ogc/smwms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1" />中的这个url地址换成相对应的wms的地址,注意,必须转换特殊字符‘&’为“&”。
重启和重新加载
根据程序部署的虚拟路径(部署图1中文件的文件夹,此例中为GeoWebCache文件夹),在浏览器地址栏里输入http://192.168.5.147:8880/GeoWebCache/demo,就会显示出你所配置并发布的所有图层,你可以点击对应的链接简单查看一下。当更改了图层配置就需要重新加载,点击重新加载,会弹出验证的对话框,输入Properties文件中的用户名和密码即可。
当输入所配置的用户名和密码后就会重新加载。注意,你必须首先删除改动的图层缓存,重新加载才会生效。
如果你配置了WEB-INF/geowebcache-servlet.xml文件,你必须重启tomcat,并删除所有图片缓存以及存放图片缓存逻辑的文件。