前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用geoserver-manager库操作geoserver发布图层

使用geoserver-manager库操作geoserver发布图层

作者头像
张云飞Vir
发布2022-12-31 17:16:31
1.8K1
发布2022-12-31 17:16:31
举报
文章被收录于专栏:写代码和思考写代码和思考

一、写在前面

geoserver 提供了地图服务,可以通过它提供的 web 管理页面,创建存储库和发布图层。在实际使用中总不能每次都人工操作,太不方便了,往往还要和你的业务系统交互,在你的业务系统管理tiff 文件并发布。这个时候 geoserver-manager库就派上用场了,它封装了 geoserver 的一些 REST 接口,可以在你的Java项目中调用这些接口来实现你的需要。

二、主要内容

2.1 概述

geoserver-manager 是使用Java库通过REST与GeoServer通信的类库。

可以再你的Java项目中使用,它作为客户端工具使用 GeoServer 的REST 接口,来实现你的业务功能。

重要的相关网址:

添加依赖

代码语言:javascript
复制
<dependency>
    <groupId>nl.pdok</groupId>
    <artifactId>geoserver-manager</artifactId>
    <version>1.7.0-pdok2</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.25</version>
    <scope>compile</scope>
</dependency>

下面是一些常用操作

2.2 初始化

代码语言:javascript
复制
String RESTURL  = "http://localhost:8080/geoserver";
String RESTUSER = "admin";
String RESTPW   = "geoserver";
        
GeoServerRESTReader reader = new GeoServerRESTReader(RESTURL, RESTUSER, RESTPW);
GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW);

2.3 创建一个工作区

代码语言:javascript
复制
boolean created = publisher.createWorkspace("myWorkspace")

2.4 发布一个TIFF 图层

代码语言:javascript
复制
public void addTIFFDatastore(String workspace) throws Exception {
        addWorkspace(workspace);

        //判断数据存储(datastore)是否已经存在,不存在则创建
        String fileName = "/Users/zhangyunfei/Downloads/pvdms/pvdmsPath/1111.tif";
        //待创建和发布图层的数据存储名称store
        String store_name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.lastIndexOf("."));

        RESTDataStore restStore = manager.getReader().getDatastore(workspace, store_name);
        if (restStore == null) {
            GSGeoTIFFDatastoreEncoder gsGeoTIFFDatastoreEncoder = new GSGeoTIFFDatastoreEncoder(store_name);
            gsGeoTIFFDatastoreEncoder.setWorkspaceName(workspace);
            gsGeoTIFFDatastoreEncoder.setUrl(new URL("file:" + fileName));
            boolean createStore = manager.getStoreManager().create(workspace, gsGeoTIFFDatastoreEncoder);
            System.out.println("create store (TIFF文件创建状态) : " + createStore);
            boolean publish = manager.getPublisher().publishGeoTIFF(workspace, store_name, new File(fileName));
            System.out.println("publish (TIFF文件发布状态) : " + publish);

        } else {
            System.out.println("数据存储已经存在了,store:" + store_name);
        }
    }

三、参考

https://github.com/geosolutions-it/geoserver-manager/wiki/Various-Examples https://docs.geoserver.org/latest/en/user/rest/index.html#rest https://github.com/As-Zach/GeoServer-SpringBoot

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、写在前面
  • 二、主要内容
    • 2.1 概述
      • 2.2 初始化
        • 2.3 创建一个工作区
          • 2.4 发布一个TIFF 图层
          • 三、参考
          相关产品与服务
          数据保险箱
          数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档