java将geotiff文件发布为geoserver服务

1、引入geoserver依赖

        <!--geoserver依赖-->
        <dependency>
            <groupId>nl.pdok</groupId>
            <artifactId>geoserver-manager</artifactId>
            <version>1.7.0-pdok2</version>
        </dependency>

2、思路
(1)创建geoserver连接对象
(2)创建工作区,有则不创建
(3)创建数据源,有则不创建
(4)发布图层服务

3、代码

/**
     * 将tif文件(DEM数据,DOM数据)发布为geoserver服务
     *
     * @return
     */
    public boolean publishGeotiff(){
        try {
            String url = "http://192.168.10.xx:8080/geoserver";    //geoserver的地址
            String un = "admin";         //geoserver的账号
            String pw = "geoserver";     //geoserver的密码

            String workspace = "shapefile";     //工作区名称
            String storename = "posttt";     //数据源名称(最后发布的服务title也是这个)
            String layerName = "tututut";      //图层名称,任意起

            String geotiffPath = "D:\\data\\DEM\\xujiliang\\tubidu.tif";    //geotiff文件的路径

            //  1、获取geoserver连接对象
            GeoServerRESTManager manager = null;

            try {
                manager = new GeoServerRESTManager(new URL(url) , un , pw);
                System.out.println("连接geoserver服务器成功");
            }catch (Exception e){
                e.printStackTrace();
                System.out.println("geoserver服务器连接失败");
                return false;
            }

            GeoServerRESTReader reader = manager.getReader();
            GeoServerRESTPublisher publisher = manager.getPublisher();
            GeoServerRESTStoreManager storeManager = manager.getStoreManager();

            //  2、判断是否有工作区,没有则创建
            boolean b2 = reader.existsWorkspace(workspace);
            if(!b2){
                boolean b = publisher.createWorkspace(workspace);
                if(!b){
                    System.out.println("工作区创建失败");
                    return false;
                }
            }

            //  3、创建数据源,有则不创建
            RESTDataStore datastore = reader.getDatastore(workspace, storename);
            if(datastore==null){
                GSGeoTIFFDatastoreEncoder geoTIFFDatastore = new GSGeoTIFFDatastoreEncoder(storename);

                boolean b1 = storeManager.create(workspace , geoTIFFDatastore);
                if(!b1){
                    System.out.println("创建数据源失败");
                }
            }

            //  4、发布图层服务
            boolean b = publisher.publishGeoTIFF(workspace , storename , layerName , new File(geotiffPath));
            if(!b){
                System.out.println("geotiff图层服务发布失败");
                return false;
            }

            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值