简析Geoserver中获取图层列表以及各图层描述信息的三种方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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/

                                                                           如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                          

 

时间: 2024-09-28 10:05:42

简析Geoserver中获取图层列表以及各图层描述信息的三种方法的相关文章

php mysql获取表字段名称和字段信息的三种方法_php技巧

php mysql获取表字段名称和字段信息的三种方法 先给出本实例中使用的表的信息: 使用desc获取表字段信息 php代码如下: <?php mysql_connect("localhost","root",""); mysql_select_db("test"); $query = "desc student"; $result = mysql_query($query); while($row=

解决在onCreate()过程中获取View的width和Height为0的4种方法

很经常当我们动态创建某些View时,需要通过获取他们的width和height来确定别的view的布局,但是在onCreate()获取view的width和height会得到0.view.getWidth()和view.getHeight()为0的根本原因是控件还没有完成绘制,你必须等待系统将绘制完View时,才能获得.这种情况当你需要使用动态布局(使用wrap_content或match_parent)就会出现.一般来讲在Activity.onCreate(...).onResume()方法中

GeoServer中利用SLD配图之矢量图层配图

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1 背景 我们在ArcMap中可以直接通过symbol功能对图层进行定制化配图.但是,如果我们将配好图的shp图层在GeoServer中发布时,会发现图层样式完全丢失了.其实原因很简单,用ArcMap配好的图层,其样式文件并不是保存在shp中,而是保存在mxd或者msd中. 那么如何才能让GeoServer发布的图层也能达到定制化配图的效果呢? 2 SLD简介 SLD

C#中获取、生成随机数的三种方法

  这篇文章主要介绍了C#中获取.生成随机数的三种方法,本文讲解了Random 类生成法.Guid 类生成法以及RNGCryptoServiceProvider 类生成法,需要的朋友可以参考下 随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. 代码如下: Random rd = new R

flex4 中获取Microphone,抑制回声和使用Speex编码音频的方法

flex4 中获取Microphone,抑制回声和使用Speex编码音频的方法,该方法经过本人测试可用. 一.如果你不关心请直接把代码复制,如果想要了解细节的请继续往下看 private function getMicrophone(codec:String):Microphone {     var mic:Microphone = null;     mic = Microphone.getEnhancedMicrophone();     if (mic) {         var op

ASP.NET批量操作基于原生html标签的无序列表的三种方法_实用技巧

在网页开发中,经常要用到无序列表.事实上在符合W3C标准的div+css布局中,无序列表被大量使用,ASP.NET虽然内置了BulletedList控件,用于创建和操作无序列表,但感觉不太好用.本篇介绍服务器端ASP.NET批量操作基于原生html标签的无序列表的三种方法. 方法一,将li元素做成html控件,加上id,用FindControl方法. aspx代码: <form id="form1" runat="server"> <ul>

将PPT列表文字变图形的三种方法

  有时候,我们需要将PPT中的文字变成图形的形式,通常我们会以点符列表来进行格式化.现在,对于这些昔日的作品与文件,您只要通过PowerPoint 2007 全新的自动化转换工具就能轻松完成了. 您有多种操作方式可以将条列式文字变成动人的图形. 方法一:只要单击幻灯片上既有的点符列表文本框后,在画面上方功能区里的"段落"选项组中,单击"转换为 SmartArt 图形"按钮,即可从其下拉清单中挑选所要套用的图形. 套用样式 此时,原本平凡的列表式文字输入,通过&qu

VB.NET获取硬盘信息的几种方法

硬盘 VB.NET下获取硬盘信息的几种方法 1.用API函数GetDiskFreeSpaceEx获取磁盘空间 Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" _ (ByVal lpDirectoryName As String, ByRef lpFreeBytesAvailableToCaller As Long, _ ByRef lpTot

在IOS中为什么使用多线程及多线程实现的三种方法_IOS

多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径. 在系统级别内,程序并排执行,程序分配到每个程序的执行时间是基于该程序的所需时间和其他程序的所需时间来决定的. 然而,在每个程序内部,存在一个或者多个执行线程,它同时或在一个几乎同时发生的方式里执行不同的任务. 概要提示: iPhone中的线程应用并不是无节制的,官方给出的资料显示,iPhone OS下的主线程的堆栈大小是1M,第二个线程开始就是512KB,并且该值不能通过编译器开关或线程API函数来更改,只有主线程有直接修改UI