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