Java发布GeoserverTiff瓦片服务

下载jar包并将其引入idea:

链接:https://pan.baidu.com/s/1CRNhr8qjimcscZANOk2UPA
提取码:964f
在这里插入图片描述

代码:

geoserver:
  url: http://localhost:8080/geoserver
  username: admin
  password: geoserver
	@Value("${geoserver.url}")
    private String geoserverUrl;
    @Value("${geoserver.username}")
    private String geoserverUsername;
    @Value("${geoserver.password}")
    private String geoserverPassword;
	String tifPath = "D:/tiff";
public void publishGeoServerTif(String filename){
        String workSpace = "caixukun"; // 待创建和发布图层的工作区名称workspace
        try {
            // 判断工作区(workspace)是否存在,不存在则创建
            URL u = new URL(geoserverUrl);
            GeoServerRESTManager manager = new GeoServerRESTManager(u, geoserverUsername, geoserverPassword);
            GeoServerRESTPublisher publisher = manager.getPublisher();
            List<String> workspaces = manager.getReader().getWorkspaceNames();
            if (!workspaces.contains(workSpace)) {
                boolean createws = publisher.createWorkspace(workSpace);
                System.out.println("create ws : " + createws);
            } else {
                System.out.println("有了,workSpace :" + workSpace);
            }

            // 判断数据存储(datastore)是否已经存在,不存在则创建
            String fileName = tifPath+filename;

            String layerName = filename.split("\\.")[0];
            String store_name = filename; // 待创建和发布图层的数据存储名称store

            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);


                GeoServerRESTStyleManager styleManager = manager.getStyleManager();
                //*if (!styleManager.existsStyle("sst2")) {
                // 向geoserver写入style
                // boolean publishStyleInWorkspace = styleManager.publishStyleInWorkspace(workSpace, "abc", "sst2");
                // System.out.println("publishStyleInWorkspace : "+publishStyleInWorkspace);
                // }//
					
				//设置坐标系 图层名字 style  FORCE_DECLARED(强制声明srs)
                boolean publish = publisher.publishGeoTIFF(workSpace,store_name, layerName, new File(fileName), "EPSG:4547",
                        GSResourceEncoder.ProjectionPolicy.FORCE_DECLARED, "raster", null);
                System.out.println(publish);
                
            } else {
                System.out.println("数据存储已经存在了,store:" + store_name);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

结束语:

叽叽叽叽叽叽