(二十)WebGIS中圖層樹功能的設計和實現


文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

1.背景

在GIS的桌面工具中,比如arcgis desktop或者Supermap desktop等工具,均會有圖層控制欄工具,即LayerController。通過勾選圖層控制欄中的圖層選擇框,可以實現圖層是否展示等,並且還可以設置該圖層的相關屬性。

                       

詳細需求如下:

a.圖層列表展示

b.通過圖層列表控制圖層要素的展示

c.支持設置圖層某些屬性

 

2.設計

a.圖層列表的展示將取決於數據庫中的相關表或者配置文件,增加靈活度。

b.圖層要素的展示可使用兩種方式,一種WMS請求圖片疊加,一種獲取要素信息前端繪制。

c.設置屬性后可保持只數據庫或配置文件,屬性可以包括業務屬性或者圖層可視范圍、圖層可視級別等。

 

3.圖層列表信息的獲取和實現

圖層列表中的信息應該與發布的服務中的圖層信息對應。服務的不同,獲取圖層信息的方式也就有所不同。這里我分為兩個模塊來進行描述。

3.1ags中獲取圖層組織信息

Ags發布服務后,通過服務根目錄請求便可獲取到返回的圖層信息。這些信息中包含了服務中圖層的組織結構、名稱、圖層號。解析出這些信息后保存至相關的配置文件中,便可使前端的展示與發布的服務同步了。

 

3.2Geoserver中獲取圖層組織信息

Geoserver中獲取圖層信息有兩種方式,一種是利用geoservermanager來獲取,還一種是利用想Geoserver服務直接方式rest服務來獲取。這里我重點描述后者。

獲取workspace信息:

 

獲取workspace下的datasource信息:

 

獲取workspace下datasource中的layer信息:

 

 

4.圖層要素展示的實現

當圖層列表中的圖層被點擊后,需要在前端展示出圖層要素。這里我分為兩大類來進行描述。

4.1 WMS方式請求,圖片方式展示

4.1.1 AGS中的WMS請求(export)

 

通過Bbox、Layers和Layer definitions可以進行圖層要素展示過濾。

4.1.2 Geoserver中的WMS請求

 

可以通過參數設置出圖的大小范圍等。

4.2 根據返回結果,前端繪制方式展示

向后台發送請求獲取到滿足條件的所有要素信息,前端解析這些信息后進行繪制。此種方式在交互方面更好,但是對前端有一定的負荷。

5.總結

從底層談WebGIS系列的基礎篇到這里就已經基本講完,我在這個系列中詳細講解了瓦片選址算法、在線和離線地圖URL拼接格式、前端柵格圖層和矢量圖層設計、地圖放大縮小、I查詢等相關功能。后續這個系列中我還會跟大家一起從底層探討如何做路徑優化、如何實現聚類展示、如何解決大數據展示等等問題,歡迎大家持續關注。

                                                                                    ——歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM