java一键发布geoserver图层组

对于通过java发布单个shp图层和单个tiff文件还有单个style文件,如何发布我就不讲了,这些在网上还是找得到一些资料的,下面我讲一下如何发布图层组吧!

我们通过代码连接上geoserver时

    URL u = new URL(GEOSERVER_URL);
    GeoServerRESTManager manager = new GeoServerRESTManager(u, GEOSERVER_USER, GEOSERVER_PWD);

    GeoServerRESTPublisher publisher = manager.getPublisher();

    //判断要创建的图层组是否存在
    boolean b = manager.getReader().existsLayerGroup(null, name);

existsLayerGroup是判断图层组是否存在,因为我创建的图层组没有工作区,所以我传入的是null值,通过返回的布尔类型判断图层组是否存在。存在则不新建,不存在的话通过

 GSLayerGroupEncoder gsLayerGroupEncoder=new GSLayerGroupEncoder();
 //默认给图层组一个空白的灰白图层,不然图层组创建不成功  这个图层应该是默认就有的
 gsLayerGroupEncoder.addLayer("tiger:giant_polygon");
 layerGroup = publisher.createLayerGroup(name,gsLayerGroupEncoder);

createLayerGroup创建图层组,GSLayerGroupEncoder是图层组的实体类,我们可以通过 addLayer方法添加我们所需要的图层,这里需要注意的就是我注释的内容,1.默认给图层组一个空白的灰白图层,不然图层组 创建不成功2.图层组在之前说过,每个图层是有顺序的,所以这个的addLayer图层的时候,按顺序添加进去,最后创建图层组,图层就是顺序的了3.添加的是图层的名称,不是图层的title,我因为刚开始添加的是图层title导致好几个geoserver报错,不能使用,图层名称是工作区+:+图层titile组成的

再补充一点:在创建发布图层的时候,我们会涉及到给图层增加样式,这个我从源码找到的添加方法。

GSLayerEncoder layerEncoder = new GSLayerEncoder();

//设置指定的样式
layerEncoder.addStyle(style);
//设置defaultstyle
layerEncoder.setDefaultStyle(style);
boolean publish = manager.getPublisher().publishDBLayer(ws, store_name, pds, layerEncoder);

上面代码就可以设置每个图层的样式了。

最后一点,在发布图层的时候,如果做的是地球,是要有一个蓝色的图层做海洋的,这个是很重要的,不然呈现出来的图层会不美观,海洋的图层样式,在udig中要设置50%透明就可以了,因为我一开始设置的100%,我们的矢量和栅格图层叠加在一起的时候,栅格就看不到了。最后上一个完整的展示效果图。
在这里插入图片描述

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值