环境:IDEA java geoserver。
参考:github项目:geoserver-manager
功能:使用java语言通过Geoserver软件发布tif格式地图服务。
1、新建maven工程
image.png
2、pom.xml代码
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
TestGeoserver_success
TestGeoserver_success
1.0-SNAPSHOT
it.geosolutions
geoserver-manager
1.7.0
org.slf4j
slf4j-log4j12
1.5.11
commons-httpclient
commons-httpclient
3.1
commons-io
commons-io
2.0.1
jdom
jdom
1.1
3、PublishGeotiff.java代码
package geoserver;
import it.geosolutions.geoserver.rest.GeoServerRESTPublisher;
import it.geosolutions.geoserver.rest.GeoServerRESTReader;
import it.geosolutions.geoserver.rest.decoder.RESTDataStoreList;
import java.io.File;
import java.util.List;
public class PublishGeotiff {
public static void main(String[] args) throws Exception{
final String geoserverUrl = "http://localhost:8080/geoserver";
final String geoserverUsername = "admin";
final String geoserverPassword = "geoserver";
GeoServerRESTPublisher geoServerRESTPublisher = new GeoServerRESTPublisher(geoserverUrl,geoserverUsername,geoserverPassword);
GeoServerRESTReader geoServerRESTReader = new GeoServerRESTReader(geoserverUrl,geoserverUsername,geoserverPassword);
String workspace = "bbb";
String storeName = "resttestdem";
String coverageName = "resttestdem";
File geotiff = new File("G:\\test\\resttestdem.tif");
//workspace是否存在,不存在则新建。
List workspacesList = geoServerRESTReader.getWorkspaceNames();
boolean wsNull = !workspacesList.contains(workspace);
if(wsNull){
geoServerRESTPublisher.createWorkspace(workspace);
}
//store是否存在,不存在则新建并发布数据。
RESTDataStoreList datastoresList = geoServerRESTReader.getDatastores(workspace);
List datastoreNameList = datastoresList.getNames();
boolean storeNull = !datastoreNameList.contains(storeName);
if(storeNull){
boolean result = geoServerRESTPublisher.publishGeoTIFF(workspace,storeName,coverageName,geotiff);
System.out.println("数据发布是否成功:"+result);
}else{
System.out.println("数据已经发布过了,不能重复发布!");
}
}
}
image.png