GeoServer中GeoWebCache(GWC)的使用

本文介紹GeoWebCache的使用方法,包括如何切緩存,訪問緩存wms/wmts服務,如何複用柵格緩存等。html

文章大部份內容轉載自http://www.javashuo.com/article/p-rfqugich-t.htmlweb

1.前言

在geoserver1.7版本以後,geoserver自己集成了GeoWebCache這個模塊。本文介紹的是geoserver2.2版本,其自己自帶有GeoWebCache。不過若是你的geoserver版本比較老,或者想使用最新的GeoWebCache,能夠自行在網上下載此工具,而後根聽說明按照和配置,這裏不作描述。windows

2.GeoWebCache簡介

2.1 整體描述

GeoWebCache(GWC)是一個採用Java實現用於緩存WMS(Web Map Service)Tile的開源項目。當地圖客戶端請求一張新地圖和Tile時,GeoWebCache將攔截這些調用而後返回緩存過的Tiles。若是找不到緩存再調用服務器上的Tiles,從而提升地圖展現的速度。實現更好的用戶體驗。瀏覽器

2.2特色描述

a.GWC支持多種來源的瓦片,好比ArcGIS的瓦片。緩存

b.GWC支持多種請求,好比WMS、WMS-C、WMTS、TMS、Googl Maps KML和Virtual Earth。tomcat

c.GWC支持在第一次請求地圖某範圍時,將此範圍內的地圖按照配置的信息進行切圖緩存。第二次一樣請求此範圍的地圖時,直接讀取緩存瓦片進行加速顯示。此功能相似於AGS的動態出圖。服務器

d.GWC同時也支持預先將瓦片按照配置信息切完,地圖加載時直接讀取瓦片。此功能相似於AGS的瓦片緩存出圖。工具

3.具體配置

因爲我所用的Geoserver自己自帶有此功能,因此配置相對容易。this

3.1配置瓦片存放地址

在GeoServer的web.xml文件中加上以下配置,即可以控制瓦片存放的目錄:
url

3.2瓦片詳細信息配置

當咱們配置好3.1中的地址項後,重啓tomcat,能夠發如今指定的瓦片存放文件夾下產生了這樣三個文件:

其中的GeoWebCache.xml即是瓦片的詳細配置文檔。此配置項在支持使用其餘來源的瓦片進行顯示上很是重要。不過,目前Geoserver中的集成版本不支持此功能,GeoWebCache的獨立版本能夠支持,在之後的章節裏跟我跟你們一塊兒探討此功能。

4.切圖操做

4.1.進入gwc頁面

啓動tomcat後,在瀏覽器中直接輸入http://localhost:8680/geoserver/gwc/,可進入以下頁面:

4.2選擇須要切圖的服務

點擊list選項,能夠看到可以進行切圖的服務:

4.3進行預切圖(非必須)

若是想實現相似於AGS中預先將全部瓦片所有進行切圖的效果,能夠點擊要進行切圖的圖層下的Seed this layer:

點擊Submit後,開始進行預切圖,在頁面中能夠看到切圖進程:

在瓦片緩存目錄下能夠看到切圖結果:

注意:在切圖頁面上,也能夠中止切圖進程:

5.使用切圖服務探究

5.1若是咱們的WMS請求爲通常性url,是否能夠自動開啓瓦片緩存服務?——不能

點擊Geoserver中的layer preview,查看某一圖層,某一URL爲:http://localhost:8680/geoserver/wms?LAYERS=tilelayer&STYLES=&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=104.07920033743,30.648478876565,104.08458074933,30.652787409535&WIDTH=512&HEIGHT=410

效果以下:

查看咱們的瓦片緩存文件,並無任何跟改圖層服務相關的瓦片緩存生成:

5.2使用特殊的WMS的url,是否能夠自動開啓瓦片緩存服務?——能夠

點擊此項中的png,在彈出的頁面中放大縮小,某一URL爲:http://localhost:8680/geoserver/gwc/service/wms?LAYERS=urbanlayer%3Atilelayer&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=104.1943359375,30.5419921875,104.23828125,30.5859375&WIDTH=256&HEIGHT=256

效果以下:

此時,在瓦片緩存文件夾中咱們能夠明顯的看到生成的對應緩存:

5.3由以上例子總結

對比以上兩個服務的url:
http://localhost:8680/geoserver/wms
http://localhost:8680/geoserver/gwc/service/wms

能夠看見二者的區別僅僅在於,當請求的URL中加上gwc/service後,即可以開啓瓦片緩存服務了。

6.可能存在的問題

6.1效率問題

若是使用動態切圖,即非預切圖。當須要切圖的數據(圖層或圖層組)很大時,會不會地圖第一次顯示比較慢?

6.2切圖效果失真問題

網上有人提出這樣一個問題:問題是GeoWebCache切片後的圖片質量下降,縮放的時候圖片像素都擁擠在一塊兒,沒有像windows圖片查看器或者ps那樣縮小的圖片還那樣保持清晰。

原圖:

GWC瓦片:

注意:針對此問題,有網友給出瞭解決方案:嘗試使用maptiler切片工具,不過 maptiler工具備侷限,沒法整合多張圖後一塊兒切圖。

相關文章
相關標籤/搜索