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

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

1. 背景

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

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

2.  RestAPI

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

 

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

       以datastores爲例,點擊該連接可進入其支持的全部API請求:微信

 

       其中包含了數據源的增、刪、改、查等。其餘模塊相似。工具

3.   實現

3.1   DataStores

       該操做包含判斷DataStores是否存在,以及建立。spa

3.1.1判斷是否存在

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

3.1.2建立

       再依據構造建立dataStores的XML,發送Rest請求完成建立,這裏以mysql數據源爲例:3d

 

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

 

       請求方式爲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/

                                                                           若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                

相關文章
相關標籤/搜索