文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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/
如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^