基於geoserver的REST服務完成mysql數據源動態發布


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

1. 背景

       在之前的《簡析GeoServer服務的內部文件組織以及GeoServer自動化服務發布工具的開發思路》(https://www.cnblogs.com/naaoveGIS/p/4212093.html)文章中,我詳細的介紹了Geoserver如何通過構造其內部的featuretype.xml、layer.xml等文件以實現數據源的快捷發布。但是該方案主要針對項目環境預搭建時的快速處理,但是當Geoserver已經開始運行,系統不能時刻重啟情況下,該方案是不能解決數據的實時動態發布的。因此,我們還需要其他方案來解決。

     目前有兩種方案來實現,一種是利用已封裝好的geoserverManager.jar來開發,另一種就是直接基於geoserver的Rest服務來開發。這里,我們主要對如何使用geoserver的Rest服務完成開發來進行描述。

2.  RestAPI

       Geoserver的每一個版本均有在線使用說明,這里給出其中一個版本中關於RestAPI介紹的地址:http://docs.geoserver.org/stable/en/user/rest/index.html

 

       我所列出的workspaces、datastores、featuretypes、layers、styles是服務發布中均會涉獵的類型。我們利用workspaces來創建工作空間,利用datasotores來創建數據源,利用featuretypes來將數據源中具體數據創建為要素類型,利用styles來創建樣式,利用layer來將數據類型與樣式進行關聯。

       以datastores為例,點擊該鏈接可進入其支持的所有API請求:

 

       其中包含了數據源的增、刪、改、查等。其他模塊類似。

3.   實現

3.1   DataStores

       該操作包含判斷DataStores是否存在,以及創建。

3.1.1判斷是否存在

       依賴 gisBaseLayer.getServiceUrl()+"/rest/workspaces/cite/datastores.json"請求可獲取到所有dataStores描述,進而判斷指定的DataStores是否存在。

3.1.2創建

       再依據構造創建dataStores的XML,發送Rest請求完成創建,這里以mysql數據源為例:

 

       其中,發送請求時,一定要設置其權限認證:

 

       請求方式為POST。

3.2   FeatureTypes

       當dataStores創建成功后,需將其中的數據發布為要素類型服務。這里主要包含存在判斷、刪除操作、創建操作。

3.2.1判斷是否存在

       通過發送:gisBaseLayer.getServiceUrl()+"/rest/workspaces/cite/datastores/"+storeName+"/featuretypes.json",可以獲取到指定的stores下的所有featuretype,  通過遍歷可判斷指定的featuretype是否存在。

3.2.2刪除

       以DELETE請求類型,發送:

       gisBaseLayer.getServiceUrl()+"/rest/workspaces/urbanlayer/datastores/"+storeName+"/featuretypes/"+featureTypeName+"?recurse=true"

       請求,便可刪除指定的featuretype。

3.2.3 創建

       獲取到要素的幾何范圍、坐標系等,便可以構造XML:

 

       請求方式為POST。

3.3Styles

3.3.1判斷是否存在

       通過發送:gisBaseLayer.getServiceUrl()+"/rest/styles.json",可以獲得所有style,通過遍歷可判斷指定的style是否存在。

3.3.2刪除

       以DELETE請求方式,發送:

gisBaseLayer.getServiceUrl()+"/rest/styles/"+styleName+"?purge=ture&recurse=true"

       便可刪除指定的style。

3.3.3創建

       Geoserver中的樣式內容均為SLD格式,這里創建樣式服務有多種方式,這里以style.sld和style.xml一同創建為例:

 

       紅框中分別為樣式名稱,以及創建Style時傳入的數據格式。

       請求方式為POST請求。

3.4Layers

3.4.1修改

       該功能主要目的是修改layer與style的關聯:

 

       請求方式為PUT。

4. 功能設計

       a.開發數據源選擇框,提供業務庫中待發布數據選擇、幾何字段選擇、數據條件過濾等。

       b.開發樣式配置模板,提供填充色、邊框、圖標等配置。

       c.開發地理服務器選擇框,提供選擇發布至某個geoserver。

       d.一鍵發布。

       e.元數據獲取,服務托管。

 

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

                                                                           如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                

 


免責聲明!

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



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