獨立部署GeoWebCache

在進行GIS項目開發中,常使用Geoserver作為開源的地圖服務器,Geoserver是一個JavaEE項目,常通過Tomcat進行部署。而GeoWebCache是一個采用Java實現用于緩存WMS-Tile(瓦片)的開源項目。當客戶端請求一張新地圖和Tile時,GeoWebCache將攔截這些調用然后返回緩存過的Tiles。 本文主要講述獨立部署GeoWebCache,并且復用已經切好的瓦片緩存。

在實際項目中,需要對比較大數據量的地圖切緩存,例如全國地圖,并且移植復用,進行私有云部署。那么如果用GeoWebCache直接發布已經切好的緩存呢?

一、下載安裝GeoWebCache(GWC)

不知為何,GeoWebCache官網竟然無法訪問,這里直接給出下載地址:<a target='_blank'>geowebcache-1.14.1-war.zip</a>

這里是各個版本的列表:<a target='_blank'>https://sourceforge.net/projects/geowebcache/files/geowebcache</a>

注意:安裝GWC前提還是要安裝java jre(或者jdk),安裝Tomcat,這里就不贅述了,不明白可以看之前的文章:基于Tomcat安裝Geoserver

將geowebcache的war包拷貝到tomcat的webapps目錄下即可,啟動tomcat,輸入http://localhost:8080/geowebcache,顯示如下界面說明安裝成功。

image

點擊“A list of all the layers and automatic demos”鏈接即可進入緩存圖層列表,默認有三個圖層:


image

二、修改緩存目錄

GWC默認的數據緩存目錄在%temp%\geowebcache中,我們將其修改至D:\GISData\gwccache

進入tomcat目錄,在\webapps\geowebcache\WEB-INF中修改web.xml文件,加入如下內容:

 <context-param>
      <param-name>GEOWEBCACHE_CACHE_DIR</param-name>
      <param-value>D:\GISData\gwccache</param-value>
</context-param> 

注意: 一個“context-param”節點只能有一個鍵值對。

image

重啟tomcat,發現D:\GISData\gwccache目錄多了一些文件:


image

三、復用瓦片緩存文件,發布wms圖層

1.將之前緩存好的瓦片拷貝到D:\GISData\gwccache目錄下:


image

緩存文件夾名稱即為要發布的圖層名稱,打開后層級目錄如下,以gridset名稱和zoom等級命名:


image

2.打開D:\GISData\gwccache\geowebcache.xml文件,在Layers節點下加入如下代碼:

   <wmsLayer>
   <!-- 這里的name名稱要和上面緩存文件夾的名稱一致 -->
      <name>group_yingshi_xa_f1</name>
      <mimeFormats>
        <string>image/gif</string>
        <string>image/jpeg</string>
        <string>image/png</string>
        <string>image/png8</string>
      </mimeFormats>
      <gridSubsets>
        <gridSubset>
          <gridSetName>EPSG:4326</gridSetName>
          <!-- 這里是緩存文件地圖的范圍 -->
          <extent>
            <coords>
              <double>108.940032958984</double>
              <double>34.2428131103516</double>
              <double>108.942024230957</double>
              <double>34.2460136413574</double>
            </coords>
          </extent>
        </gridSubset> 
      </gridSubsets> 
      <wmsUrl>
      <!-- 經過測試,如果你只是想發布瓦片緩存地圖,這里wmslayer url可以隨便寫一個 -->
        <string>http://127.0.0.1/wms</string>
      </wmsUrl> 
    </wmsLayer>

3.重啟tomcat服務器,會發現圖層列表中多了一個圖層:


image

4.以png方式瀏覽,緩存地圖加載成功:


image

四、問題解決

通過openlayers訪問時會出現煩人的400錯誤,通過查看客戶端代碼發現,extend為[-180,-90,180,90]


image

image

我們只需改為地圖實際的extend即可:


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

推薦閱讀更多精彩內容