新号第一篇文章,大家多多支持。
OGC服务对于做地理信息的筒子们应该不陌生。geoserver作为一个比较主流的OGC服务开源平台,在中国活跃度一直比较高。geoserver作为一款OGC服务发布平台,其可扩展、可开发性其实很好,但是由于开源的原因,其开发官方文档其实非常匮乏。同时仅有的一些开发文档由于是由各类志愿者撰写,其版本更新往往跟不上geoserver版本的更新速度,导致了开发过程中的许许多多的困扰。通过一段时间研究各类文档资料和实践摸索,对各类API算是初窥门径,不出意外,我打算分两篇分别介绍其python、java的API。
首先我简单介绍一下,我基于geoserver rest api做的工作。我们教研室自己有一个WEB 端的GIS平台——HiGIS,我所做的工作就是实现从HiGIS客户端发送请求,然后后台自动化的根据HiGIS请求,从POGIS数据库或者文件系统向geoserver发布WMS、WCS、WFS。
因为我所做的工作是需要作为服务器接收外部访问,所以我的geoserver部署在高性能分布式集群上(centos),客户端为普通PC(ubuntu 14.04)即可。如果是实验部署,一台普通PC作为服务器即可。相关部署网上各类教程非常完善,不在赘述。
gsconfig中的说明,写得很简单,实际上其功能十分强大。以下我根据每个接口名称简要介绍其功能以及使用过程中需要注意的地方。
1、get_workspace、get_store等get系列函数,能根据名称获得在geoserver中已经存在的资源,并返回其句柄。
2、create系列函数,能自动化发布文件系统、postgis数据库的features、coverage数据。特别提醒,create coveage数据时,需要注意是否上传。若该coverage数据和geoserver在同一物理机上,可选择不上传,直接从路径获取数据的接口。同时,需要注意的是gsconfig没有直接创建coverage图层的函数,需要使用linux命令行实现。
3、发布图层组(地图)时,注意坐标系的一致性,以及图层的顺序。
4、样式,geoserver采用的sld(风格化图层描述器)描述样式,不同于主流的mapnik风格描述,需要进行转换(转换工具:mapnik2geotools),转换后create_style自动化上传。
说得比较简单,实际开发过程中确实遇到了许许多多的问题,欢迎私信交流!