GeoServer地圖開發解決方案(四):發佈Web地圖服務(WMS)篇

 

  GeoServer 是 OpenGIS Web 服務器規範的 J2EE 實現的社區開源項目,利用 GeoServer 可以方便的發佈地圖數據,允許用戶對特徵數據進行更新、刪除、插入操作,通過 GeoServer 可以比較容易的在用戶之間迅速共享空間地理信息。本系列博文提供全面、完善的GeoServer部署解決方案,包括GeoServer環境搭建、地圖數據處理、部署地圖數據、發佈地圖服務等功能的詳細介紹。文中內容來自本人工作中通過網絡學習後總結而成,如有類同純屬巧合,同時歡迎廣大網友前來交流。
        
 
 
  系列目錄導航:
 
一、發佈地圖圖層
  在上一篇《GeoServer地圖開發解決方案(三):部署地圖數據篇》中大家都看到基於工作空間的數據存儲器管理的地圖圖層,還提到可在圖層列表中發佈地圖圖層爲WMS服務,對於已經發布過的地圖數據還可以進行修改發佈。
        
  從上圖上可以看到每個圖層有“Published”屬性,表示當前圖層是否發佈,其後還有操作連接“Publish again”或“Publish”,表示對以及發佈的圖層進行再次發佈,或者對沒有發佈的圖層進行發佈。
  要發佈地圖圖層可以在圖層列表中點擊“Publish”進入圖層發佈界面,這裏需要注意的就是在進行圖層發佈的時候有幾個必填的參數,分別爲Declared SRS、Bounding Boxes等。Declared SRS表示當前發佈的地圖圖層將採用何種地理空間引用標準,這裏通常都是使用的EPSG:4326標準;Bounding Boxes表示當前圖層的經度、緯度範圍,這兩項值可以直接通過GeoServer提供的工具自動獲取到。詳細如下圖所示:
        
二、發佈地圖樣式
  之所以要應用樣式,主要是解決中文編碼的問題以及某些地圖數據需要做特別的處理,通常可以修改樣式文件實現,這裏大多數的圖層使用默認的樣式基本不會有問題,某些圖層使用默認的樣式卻不能正確的發佈爲WMS服務,就需要使用前面所介紹的通過uDig對地圖數據的樣式進行編輯並導出樣式文件(.sld),然後再GeoServer中發佈新的樣式,並在圖層發佈或者是編輯圖層的時候就使用自己發佈的樣式。
 
  通過樣式列表界面的“Add a new style”就可進入下面的樣式發佈界面。如下圖所示:
        
 
三、應用地圖樣式
  應用地圖樣式非常簡單,在添加地圖圖層或者編輯地圖圖層的時候,通過“Default style”功能選項進行地圖圖層的樣式設置。詳細如下圖所示:    
        
 
四、預覽地圖圖層
  通過GeoServer管理臺左邊功能導航“Layer Preview”可進入圖層閱覽列表,在此列表中部分類型地圖圖層還提供導出爲KML和GML格式的地圖數據。
        
 
  從上圖所示中點擊圖層所對應的“OpenLayers”就可以打開所對應地圖圖層的預覽界面,上圖圖層列表的地圖圖層是爲了測試而部署的,比如需要查看重慶大區界地圖圖層,那麼可以直接預覽大區邊界地圖圖層就可以了,也就是上圖中的名爲“cq:dqjx_polyline”的圖層。
        
 
  如上面預覽地圖圖層,實際上就是加載了單個地圖圖層,其對應的URL地址如下表格所示:

WMS服務的單個地圖圖層加載分析表
&width=512&height=421&srs=EPSG:4326&format=application/openlayers
參數名
參數值
參數說明
service
WMS
表示該服務爲WMS服務
Version
1.0.1
WMS服務版本
request
GetMap
WMS服務請求接口類型,GetMap表示請求地圖數據
layers
cq:dqjx_polyline
WMS所請求的地圖圖層
Styles
 
圖層樣式
bbox
105.286,28.163,110.194,32.203
請求的地圖圖層範圍
width
512
寬度
height
512
高度
srs
EPSG:4326
地理空間引用標準
format
application/openlayers
地圖響應格式(openlayers)
 
五、多圖層疊加呈現
  在訪問WMS服務的時候通常都是將多個地圖圖層進行疊加組合,才能完成一個相對完整的地圖界面呈現。在訪問WMS服務的時候圖層疊加非常簡單,就是在WMS請求地址的layers參數後面用逗號(“,”)將多個圖層進行分割就可以了。下面的WMS服務請求地址就疊加了3個地圖圖層:
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=cq:dqjx_polyline,cq:cszgddx_polyline,cq:cszgd_polyline
&styles=&bbox=105.286,28.163,110.194,32.203&width=512&height=421&srs=EPSG:4326&format=application/openlayers
 
  layers=cq:dqjx_polyline,cq:cszgddx_polyline,cq:cszgd_polyline,表示此WMS服務請求是由三個地圖圖層疊加組合而成的。最終的預覽效果如下圖:
        
 
  本篇就介紹到這裏,希望可以通過本文拋磚引玉,期待關於GeoServer地圖數據部署更加精彩的文章。下一篇將詳細介紹如何通過Silverlight技術實現Web地圖客戶端。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章