在geoserver1.7版本之後,geoserver本身集成了GeoWebCache模塊。本文介紹如何使用。
GeoWebCache(GWC)是壹個采用Java實現用於緩存WMS(Web Map Service)Tile的開源項目。當地圖客戶端請求壹張新地圖和Tile時,GeoWebCache將攔截這些調用然後返回緩存過的Tiles。如果找不到緩存再調用服務器上的Tiles,從而提高地圖展示的速度。實現更好的用戶體驗。
a.GWC支持多種來源的瓦片,比如ArcGIS的瓦片。 (需要獨立安裝,集成的GeoWebCache不支持)
b.GWC支持多種請求,比如WMS、WMS-C、WMTS、TMS、Googl Maps KML和Virtual Earth。
c.GWC支持在第壹次請求地圖某範圍時,將此範圍內的地圖按照配置的信息進行切圖緩存。第二次同樣請求此範圍的地圖時,直接讀取緩存瓦片進行加速顯示。此功能類似於AGS的動態出圖。
d.GWC同時也支持預先將瓦片按照配置信息切完,地圖加載時直接讀取瓦片。此功能類似於AGS的瓦片緩存出圖。
在GeoServer安裝目錄中找到web.xml文件,具體在目錄D:\Program Files (x86)\GeoServer 2.11.3\webapps\geoserver\WEB-INF下
點擊list選項,可以看到能夠進行切圖的服務
如果想實現類似於AGS中預先將所有瓦片全部進行切圖的效果,可以點擊要進行切圖的圖層下的Seed this layer:
image
點擊Submit後,開始進行預切圖,在頁面中可以看到切圖進程:
完成之後可以在緩存路徑下看到切片內容。
geoserver可以實現動態緩存切片,具體是怎麽回事呢?
當我們的WMS請求為壹般性url,是不能自動開啟瓦片緩存服務的,比如通過Layer Preview訪問:
http://localhost:8080/geoserver/QQQQ/wms?service=WMS&version=1.1.0&request=GetMap&layers=QQQQ%3AQWQWRRAAAA&bbox=1.3206822745846782E7%2C3752719.2737657893%2C1.3207662961846782E7%2C3753671.107765789&width=677&height=768&srs=EPSG%3A3857&format=application/openlayers
而當我們在Tile Layers中訪問時,是可以動態緩存的。
http://localhost:8080/geoserver/gwc/demo/QQQQ:QWQWRRAAAA?gridSet=EPSG:4326&format=image/png
當我們在geoserver中發布好服務後,是可以選擇是否預先靜態切片的。如果我們預先靜態切片了。切片內容會存放在我們配置的路徑下。通過Tile Layers來訪問,訪問的是壹個個切片。如果我們沒有預先切片,我們也可以通過Tile Layers來訪問,這時也是壹個個切片,但這個切片是動態生成的。生成後也會存放在我們配置的路徑下。但要註意壹點,這種訪問,第壹次是比較慢的。
點擊Gridsets選項創建切圖方案,點擊Create a new gridset可以創建新的切圖方案,也可以點擊現成的切圖方案右側的Create a copy復制壹個方案,並在此基礎上進行修改
在切圖級別設置功能區可以添加刪除壹些切圖等級,點擊保存保存切圖方案
點擊保存之後,在gwc目錄下可以看見新增的壹個後綴為.bak的配置文件,就是切圖方案的配置文件