GeoWebCache的配置与使用

最近在做一个开源GIS的demo的工作,工作中涉及到了地图瓦片,选取的开发环境是geoserver+openlayers,那么地图瓦片自然而然也 就使用geowebcache,geowebcache就相当于是openlayer和geoserver之间的中介,首先,geowebcache会根 据你的配置信息,把相应的地图图层切好图,存放在磁盘中,然后在使用openlayer加载地图服务的时候,把地图服务的地址指向 geowebcache,geowebcache接收到这些请求后,会根据请求的位置和比例尺在切片目录中找到对应的瓦片,然后返回给你,省去了动态生成 地图的过程,速度大幅度提高,而且由于请求的图片资源是事先生成好的,浏览器加载这些图片之后,下一次再去请求同样的图片,就会从浏览器的缓存中拉去,速 度进一步提高!

下面说一下geowebcache的配置使用。首先下载war包,在tomcat中解压后,会在WEB-INF目录下找到一系列配置文件,先找到web.xml,然后在web-app根元素下添加:

 

  1. <context-param>  
  2.     <param-name>GEOWEBCACHE_CACHE_DIR</param-name>  
  3.     <param-value>D:/data/cache</param-value>  
  4. </context-param>  
param-value的值就是你要存放geowebcache瓦片的位置,配置好这里,重启tomcat,你会发现在你的瓦片目录下生成了一些文件,其中就有geowebcache.xml,这个文件是geowebcache配置的关键所在,以下是这个文件的配置信息:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <gwcConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.   xmlns="http://geowebcache.org/schema/1.5.3"  
  4.   xsi:schemaLocation="http://geowebcache.org/schema/1.5.3 http://geowebcache.org/schema/1.5.3/geowebcache.xsd">  
  5.   <version>1.5.3</version>  
  6.   <backendTimeout>120</backendTimeout>  
  7.   <serviceInformation>  
  8.     <title>GeoWebCache</title>  
  9.     <description>GeoWebCache is an advanced tile cache for WMS servers.It supports a large variety of protocols and  
  10.       formats, including WMS-C, WMTS, KML, Google Maps and Virtual Earth.</description>  
  11.     <keywords>  
  12.       <string>WFS</string>  
  13.       <string>WMS</string>  
  14.       <string>WMTS</string>  
  15.       <string>GEOWEBCACHE</string>  
  16.     </keywords>  
  17.     <serviceProvider>  
  18.       <providerName>lzugis</providerName>  
  19.       <providerSite>http://blog.csdn.net/gisshixisheng</providerSite>  
  20.       <serviceContact>  
  21.         <individualName>lzugis</individualName>  
  22.         <positionName>GIS工程师</positionName>  
  23.         <addressType>工程师</addressType>  
  24.         <addressStreet>海淀区翠微路甲3号</addressStreet>  
  25.         <addressCity>北京</addressCity>  
  26.         <addressAdministrativeArea>海淀区</addressAdministrativeArea>  
  27.         <addressPostalCode>010010</addressPostalCode>  
  28.         <addressCountry>中国,China</addressCountry>  
  29.         <phoneNumber>+81 189 1133 7984</phoneNumber>  
  30.         <faxNumber>+81 189 1133 7984</faxNumber>  
  31.         <addressEmail>niujp08@qq.com</addressEmail>  
  32.       </serviceContact>  
  33.     </serviceProvider>  
  34.     <fees>NONE</fees>  
  35.     <accessConstraints>NONE</accessConstraints>  
  36.   </serviceInformation>  
  37.   
  38.   <gridSets>  
  39.     <!-- Grid Set Example, by default EPSG:900913 and EPSG:4326 are defined -->  
  40.     <gridSet>  
  41.       <!-- This does not have to be an EPSG code, you can also have multiple gridSet elements per SRS -->  
  42.       <name>EPSG:4326</name>  
  43.       <srs>  
  44.         <number>4326</number>  
  45.       </srs>  
  46.       <extent>  
  47.         <coords>  
  48.           <double>73.45100463600005</double>  
  49.           <double>18.16324718800007</double>  
  50.           <double>134.976797647</double>  
  51.           <double>53.53194315200005</double>  
  52.         </coords>  
  53.       </extent>  
  54.       <scaleDenominators>  
  55.         <double>25000000</double>  
  56.         <double>1000000</double>  
  57.         <double>100000</double>  
  58.         <double>25000</double>  
  59.       </scaleDenominators>  
  60.       <tileHeight>256</tileHeight>  
  61.       <tileWidth>256</tileWidth>  
  62.     </gridSet>  
  63.   </gridSets>  
  64.   
  65.   <layers>  
  66.     <wmsLayer>  
  67.       <name>china</name>  
  68.       <mimeFormats>  
  69.         <string>image/gif</string>  
  70.         <string>image/jpeg</string>  
  71.         <string>image/png</string>  
  72.         <string>image/png8</string>  
  73.       </mimeFormats>  
  74.       <wmsUrl>  
  75.         <string>http://200.200.200.220:8888/geoserver/wms</string>  
  76.       </wmsUrl>  
  77.       <wmsLayers>geoserver:china</wmsLayers>  
  78.     </wmsLayer>  
  79.   </layers>    
  80. </gwcConfiguration>  
配置好上面的信息之后,进入:http://localhost:8080/geowebcache/demo,点击"Reload Configuration"重新读取配置信息,如下所示:


如果配置信息没错,你会发现,你所配置的图层信息已经显示在这个页面上了,点击“Seed this layer”,然后你需要输入下面这些信息:


设置好,点submit就开始切图了。在资源管理器中打开,如下图:


配置完成以后,就是如何在地图中显示了,下面是显示的源代码:

 

  1. <pre name="code" class="html"><html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  4. <title>china EPSG:4326 image/png</title>  
  5. <link rel="stylesheet" type="text/css" href="http://200.200.200.220/OpenLayers-2.12/theme/default/style.css"/>  
  6. <style type="text/css">  
  7.     body { font-family: sans-serif; font-weight: bold; font-size: .8em; }  
  8.     body { border: 0px; margin: 0px; padding: 0px; }  
  9.     #map { width: 100%; height: 100%; border: 0px; padding: 0px; }  
  10. </style>  
  11. <script type="text/javascript" src="http://200.200.200.220/OpenLayers-2.12/OpenLayers.js"></script>    
  12. <script type="text/javascript" src="http://200.200.200.220/OpenLayers-2.12/lib/OpenLayers/Lang/zh-CN.js"></script>  
  13. <script type="text/javascript">                 
  14.     var map, demolayer;                                                                          
  15.     OpenLayers.DOTS_PER_INCH = 90.71428571428572;  
  16.     OpenLayers.Util.onImageLoadErrorColor = 'transparent';  
  17.     function init(){  
  18.         var mapOptions = {   
  19.             resolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625,   
  20.                 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4,   
  21.                 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5, 4.291534423828125E-5,   
  22.                 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6,   
  23.                 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7  
  24.             ],  
  25.             projection: new OpenLayers.Projection('EPSG:4326'),  
  26.             maxExtent: new OpenLayers.Bounds(-180.0,-90.0,180.0,90.0),  
  27.             units: "degrees",  
  28.             controls: []  
  29.         };  
  30.         map = new OpenLayers.Map('map', mapOptions );  
  31.           
  32.         map.addControl(new OpenLayers.Control.PanZoomBar({  
  33.                 position: new OpenLayers.Pixel(2, 15)  
  34.         }));  
  35.         map.addControl(new OpenLayers.Control.Navigation());  
  36.         map.addControl(new OpenLayers.Control.Scale($('scale')));  
  37.         map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));  
  38.           
  39.         demolayer = new OpenLayers.Layer.WMS(  
  40.             "china","http://200.200.200.220:8080/geowebcache/service/wms",  
  41.             {layers: 'china', format: 'image/png' },  
  42.             { tileSize: new OpenLayers.Size(256,256)}  
  43.         );  
  44.         map.addLayer(demolayer);  
  45.         map.zoomToExtent(new OpenLayers.Bounds(73.45100463600005, 18.16324718800007,   
  46.             134.976797647, 53.53194315200005)  
  47.         );  
  48.     }  
  49. </script>  
  50. </head>  
  51. <body onLoad="init()">  
  52.     <div id="map"></div>  
  53. </body>  
  54. </html>  
显示的结果如下:

 


附件:

 

或者我的百度网盘,地址:http://pan.baidu.com/s/1kTJt91l

 

posted @ 2016-07-18 15:30  韩慧兵  阅读(2217)  评论(0编辑  收藏  举报