基于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/

                                                                           若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                

相关文章
相关标签/搜索