geoserver自带rest服务,可以发布shp,postgis等数据源。本文目前只说明怎么通过geoserver的rest发布postgis表数据。
1、maven添加geoserver-manager的依赖。
<dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>it.geosolutions</groupId> <artifactId>geoserver-manager</artifactId> <version>1.5.2</version> </dependency>
2、java代码开始
配置数据库连接参数、geoserver连接参数,要发布的图层信息参数
String url = "http://localhost:8000/geoserver" ; String username = "admin" ; String passwd = "geoserver" ; //postgis连接配置 String postgisHost = "localhost" ; int postgisPort = 6666 ; String postgisUser = "xxx" ; String postgisPassword = "xxx" ; String postgisDatabase = "xxx" ; String ws = "lyf" ; //待创建和发布图层的workspace String store_name = "lyf" ; //数据库连接要创建的store String table_name = "xxx" ; // 数据库要发布的表名称,后面图层名称和表名保持一致
判断workspace是否存在,不存在则创建:
URL u = new URL(url); GeoServerRESTManager manager = new GeoServerRESTManager(u, username, passwd); GeoServerRESTPublisher publisher = manager.getPublisher() ; //创建一个workspace List<String> workspaces = manager.getReader().getWorkspaceNames(); if(!workspaces.contains(ws)){ boolean createws = publisher.createWorkspace(ws); System.out.println("create ws : " + createws); }else { System.out.println("workspace已经存在了,ws :" + ws); }
判断datastore是否已经存在,不存在则创建
//store 包含和workspace一致,一个ws一个连接即可 RESTDataStore restStore = manager.getReader().getDatastore(ws, store_name); if(restStore == null){ GSPostGISDatastoreEncoder store = new GSPostGISDatastoreEncoder(store_name); store.setHost(postgisHost);//设置url store.setPort(postgisPort);//设置端口 store.setUser(postgisUser);// 数据库的用户名 store.setPassword(postgisPassword);// 数据库的密码 store.setDatabase(postgisDatabase);// 那个数据库; store.setSchema("public"); //当前先默认使用public这个schema store.setConnectionTimeout(20);// 超时设置 //store.setName(schema); store.setMaxConnections(20); // 最大连接数 store.setMinConnections(1); // 最小连接数 store.setExposePrimaryKeys(true); boolean createStore = manager.getStoreManager().create(ws, store); System.out.println("create store : " + createStore); } else { System.out.println("数据store已经发布过了,store:" + store_name); }
判断图层是否已经存在,不存在则创建
//发布 RESTLayer layer = manager.getReader().getLayer(ws, table_name); if(layer == null){ GSFeatureTypeEncoder pds = new GSFeatureTypeEncoder(); pds.setTitle(table_name); pds.setName(table_name); pds.setSRS("EPSG:4326"); GSLayerEncoder layerEncoder = new GSLayerEncoder(); boolean publish = manager.getPublisher().publishDBLayer(ws, store_name, pds, layerEncoder); System.out.println("publish : " + publish); }else { System.out.println("表已经发布过了,table:" + table_name); }
好了,到此就结束了。
附件带了完整的demo。
相关推荐
修改了geoserver-rest-python-1.0的一些bug,做了一些优化
基于python封装的geoserver rest接口,实现了常用操作,可以满足基本需求,比如发布一个shp/tif文件,或着从postgis发布数据表。
NULL 博文链接:https://liubingjun.iteye.com/blog/1116923
把geoserver图层或图层组缓存到硬盘上,提高访问速度
下载如有问题,可私信博主。下载前建议先查看博客内容,其地址为:https://blog.csdn.net/QQ98281642/article/details/124005209
通过其REST API的Geoserver 赫罗纳会议代码和 获取代码 $ git clone https://github.com/michogar/geoserver-rest-samples.git $ cd geoserver-rest-samples $ npm install 入门 为了能够使用这些示例,您必须在URL...
包装程序库,用于与Geoserver REST API进行交互 贡献 发现了错误?是否要实施一项新功能?非常欢迎您的贡献! 较小的更改和错误修复可以通过请求请求提交。在较大的贡献中,推荐了初步计划(在GitHub问题中讨论)。 ...
具体描述参照 https://blog.csdn.net/dahongdahong/article/details/54629407
geoserver-manager 使用Geoserver的REST API
GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间...
下载如有问题,可私信博主。下载前建议先查看博客内容,其地址为:https://blog.csdn.net/QQ98281642/article/details/123863184
资源来自pypi官网。 资源全名:geoserver-rest-2.0.0.tar.gz
geoserver自动发布数据代码;在eclipse中可以直接运行,
资源分类:Python库 所属语言:Python 资源全名:geoserver_rest-1.2.4-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
webgis前端地图开发的时候,在geoserver发布图层的时候,根据自己需求自定义样式文件,让发布的服务使用自定义的样式
将mongodb矢量数据在geoserver中发布;将mongodb矢量数据在geoserver中发布
基于GeoServer REST的矢量地图服务自动发布研究与应用.docx
该资源适合初级同学对geosever图层进行编辑的功能,可以下载使用,该资源能满足openlayers对geoserver图层的查询、编辑、新增,删除等操作
利用openlayers加载geoserver wfs服务发布的矢量图层。