文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/。
1.背景
實際項目中需要獲取到Geoserver中的圖層組織以及各圖層的描述信息:比如字段列表等。在AGS中,我們可以直接通過其提供的REST服務獲取到圖層組織情況以及圖層詳細信息列表,具體如下所示:
那么在Geoserver中是否也有相關用法?各種方法之間有何優劣?
2.REST請求方法
2.1方法描述
該方法與上面講解的AGS的REST請求方法類似,也是先獲取到組織情況然后再進行各個圖層的描述信息獲取:
獲取workspace信息:
獲取workspace下的datasource信息:獲取workspace下datasource中的layer信息:
2.2 缺點
該方法在Geoserver中,必須先登陸獲取到權限,發送rest請求時才能成功。在代碼中如果不做模擬登陸直接發送請求,會報403錯誤。
3.使用GeoServerManager開發包進行獲取
3.1方法描述
3.1.1環境准備
該環境不僅僅只是需要引用geoserver-manager-1.6.0.jar,想要真正能夠使用,還需要引用其多個依賴jar:
3.1.2代碼編寫
3.2缺點
a.需要添加太多的jar。
b.對中文目前不能支持。當圖層名為中文,以及當圖層字段名有中文時均無法獲取到。
4.通過WFS請求獲取
在WFS請求中有一個DescribeFeatureType,具體描述可參考:http://docs.geoserver.org/stable/en/user/services/wfs/reference.html。
獲取到圖層組織(http://192.168.101.14/geoserver/ows?service=wfs&version=2.0.0&request=DescribeFeatureType):
獲取具體圖層的詳細信息(http://192.168.101.14/geoserver/urbanlayer/ows?service=wfs&version=1.0.0&request=DescribeFeatureType&typeName=cell):
5.總結
WFS方法即能支持中文字段、也能回避Jar的添加,而且權限上不再需要先做登陸,只需對返回的XML數據進行解析即可。綜合來看,是目前首選的方法。
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^