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();
}
}
结束语:
叽叽叽叽叽叽