GeoServer中GeoWebCache(GWC)的使用

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

文章大部分內容轉載自<a target='_blank'>https://www.cnblogs.com/naaoveGIS/p/4195008.html</a>

1.前言

在geoserver1.7版本之后,geoserver本身集成了GeoWebCache這個模塊。本文介紹的是geoserver2.2版本,其本身自帶有GeoWebCache。不過如果你的geoserver版本比較老,或者想使用最新的GeoWebCache,可以自行在網上下載此工具,然后根據說明按照和配置,這里不做描述。

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。

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

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

3.具體配置

由于我所用的Geoserver本身自帶有此功能,所以配置相對容易。

3.1配置瓦片存放地址

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


image

3.2瓦片詳細信息配置

當我們配置好3.1中的地址項后,重啟tomcat,可以發現在指定的瓦片存放文件夾下產生了這樣三個文件:


image

其中的GeoWebCache.xml便是瓦片的詳細配置文檔。此配置項在支持使用其他來源的瓦片進行顯示上非常重要。不過,目前Geoserver中的集成版本不支持此功能,GeoWebCache的獨立版本可以支持,在以后的章節里跟我跟大家一起探討此功能。

4.切圖操作

4.1.進入gwc頁面

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

image

4.2選擇需要切圖的服務

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


image

4.3進行預切圖(非必須)

如果想實現類似于AGS中預先將所有瓦片全部進行切圖的效果,可以點擊要進行切圖的圖層下的Seed this layer:


image

點擊Submit后,開始進行預切圖,在頁面中可以看到切圖進程:


image

在瓦片緩存目錄下可以看到切圖結果:


image

注意:在切圖頁面上,也可以停止切圖進程:

image

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。

效果如下:

image

查看我們的瓦片緩存文件,并沒有任何跟改圖層服務相關的瓦片緩存生成:


image

5.2使用特殊的WMS的url,是否可以自動開啟瓦片緩存服務?——可以

image

點擊此項中的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

效果如下:


image

此時,在瓦片緩存文件夾中我們可以明顯的看到生成的對應緩存:


image

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那樣縮小的圖片還那樣保持清晰。

原圖:


image

GWC瓦片:


image

注意:針對此問題,有網友給出了解決方案:嘗試使用maptiler切片工具,不過 maptiler工具有局限,無法整合多張圖后一起切圖。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 因為要做一個地圖操作的項目,需要用到這個地圖庫,但是查詢官方API麻煩,而且這個地圖框架的API做的用起來確實太麻...
    虛幻的銹色閱讀 33,998評論 1 15
  • 轉自:http://www.cnblogs.com/naaoveGIS/ 1.背景 1.1WMS簡介 Web地圖服...
    絨羊閱讀 3,780評論 0 4
  • Samples 通過EPSG.io搜索進行二次投影 視圖(View)動畫 使用動態 ArcGIS REST Map...
    changhr2013閱讀 15,385評論 0 8
  • 序幕 地球 北京 門頭溝 吳爸正在化石挖掘場考察。忽然渾身一抖,似乎被什么東西掃了一下。吳爸疑惑地抬起頭左右看了看...
    一站博物閱讀 607評論 0 51
  • 1、特殊變量: $0當前腳本的文件名 $n傳遞給腳本或函數的參數。n是一個數字,表示第幾個參數。例如,第一個參數是...
    KevinLH閱讀 198評論 0 0