Geoserver发布png栅格数据

Geoserver发布png栅格数据

发布png前提条件.prj 、.pgw缺一不可
在这里插入图片描述

properties配置

com.xahb.geoserver.ip=localhost
com.xahb.geoserver.port=8080
com.xahb.geoserver.user=admin
com.xahb.geoserver.password=geoserver
com.xahb.geoserver.workspace=xahbnew

GeoServer 实体类

package com.xahb.geoserver;

import org.json.JSONObject;

public class GeoServer {
    
    
	
	private boolean _start_ = true;
	
	private String ip;		//地址
	
	private String port;	//端口
	
	private String user;	//用户名
	
	private String password; //密码
	
	private String workspace; //工作空间
	
	private String path;  //路径
	
	private final String DEFAULT_IP = "127.0.0.1";
	
	private final String DEFAULT_PORT = "8080";
	
	private final String DEFAULT_USER = "admin";
	
	private final String DEFAULT_PASSWORD = "geoserver";
	
	private final String DEFAULT_WORKSPACE = "zdfb";
	
	public GeoServer(){
    
    
		this.ip = this.DEFAULT_IP;
		this.port = this.DEFAULT_PORT;
		this.user = this.DEFAULT_USER;
		this.password = this.DEFAULT_PASSWORD;
		this.workspace = this.DEFAULT_WORKSPACE;
		this.path = "http://"+ this.ip +":" + this.port+ "/geoserver/rest";
	}
	
	public GeoServer(String ip,String port,String workspace,String user,String password){
    
    
		this.ip = ip;
		this.port = port;
		this.workspace = workspace;
		this.user = user;
		this.password = password;
		this.path = "http://"+ this.ip +":" + this.port+ "/geoserver/rest/";
	}
	
	public boolean get_start_() {
    
    
		return _start_;
	}

	public String getIp() {
    
    
		return ip;
	}

	public String getPort() {
    
    
		return port;
	}

	public String getUser() {
    
    
		return user;
	}

	public String getPassword() {
    
    
		return password;
	}

	public String getPath() {
    
    
		return path;
	}
	
	public String getWorkspace() {
    
    
		return workspace;
	}
	
	public String getLoign() {
    
    
		return user + ":" + password;
	}
	
	public String getUrl(String str) {
    
    
		return path + str ;
	}
	
	public Result run() {
    
    
		
		Result fh = new Result();
		
		String[] cmds={
    
    "curl", "-u", getLoign() , "-XGET", "-H", "content-type: application/json", getUrl("about/version.xml")};
		
		try {
    
    
			String result = GeoserverTool.execCurl(cmds);
			fh.setOriginal(result);
			JSONObject obj = GeoserverTool.xml2jsonString(result);
			obj.getJSONObject("about").get("resource");
			fh.setStart(true);
			fh.setJSONObject(obj);
			fh.setDescribe("geoserver连接成功!!!!!!");
			_start_ = true;
		} catch (Exception e) {
    
    
			fh.setStart(false);
			fh.setMessage(e.getMessage());
			fh.setDescribe("geoserver连接失败!!!!!!");
			_start_ = false;
		}
		return fh;
	}
}

GeoServerConfig

package com.xahb.condition;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:resource.properties")
@ConfigurationProperties(prefix = "com.xahb.geoserver")
public class GeoServerConfig {
    
    

	private String ip;
	
	private String port;
	
	private String user;
	
	private String password;
	
	private String workspace;

	public String getIp() {
    
    
		return ip;
	}

	public void setIp(String ip) {
    
    
		this.ip = ip;
	}

	public String getPort() {
    
    
		return port;
	}

	public void setPort(String port) {
    
    
		this.port = port;
	}

	public String getUser() {
    
    
		return user;
	}

	public void setUser(String user) {
    
    
		this.user = user;
	}

	public String getPassword() {
    
    
		return password;
	}

	public void setPassword(String password) {
    
    
		this.password = password;
	}

	public String getWorkspace() {
    
    
		return workspace;
	}

	public void setWorkspace(String workspace) {
    
    
		this.workspace = workspace;
	}
	
}

GeoserverPicture

package com.xahb.geoserver;

import org.json.JSONObject;

public class GeoserverPicture extends GeoserverImage{
    
    
	
	private String workspace; //工作空间
	
	private GeoServer geoserver;
	
	public GeoserverPicture(GeoServer geoserver) {
    
    
		super(geoserver);
		this.geoserver = geoserver;
		this.workspace = geoserver.getWorkspace();
	}
	
	public GeoserverPicture(GeoServer geoserver,String workspace) {
    
    
		super(geoserver,workspace);
		this.geoserver = geoserver;
		this.workspace = workspace;
	}
	
	public String getWorkspace() {
    
    
		return workspace;
	}
	
	/**
	 * 
	 * 
	 * curl -v -u admin:geoserver -XPUT -H "Content-type: text/plain" -d "file:///data/shapefiles/rivers/rivers.jpg"  http://localhost:8080/geoserver/rest/workspaces/acme/coveragestores/rivers/external.worldimage
	 * 
	 * @return Result
	 */
	public Result IssuePictureExternal(String workspace,String layers, String url) {
    
    
		
		Result fh = new Result();
		
		String[] cmds={
    
    "curl", "-u", geoserver.getLoign() , "-XPUT", "-H", "Content-type: text/plain" , geoserver.getUrl("workspaces/" + workspace + "/coveragestores/"+ layers + "/external.worldimage"), "-d", "file://" + url};
		
		try {
    
    
			String result = GeoserverTool.execCurl(cmds);
			fh.setOriginal(result);
			
			JSONObject obj = GeoserverTool.xml2jsonString(result);
			String layersname = obj.getJSONObject("coverageStore").get("name").toString();
			
			if(layers.equals(layersname)) {
    
    
				fh.setStart(true);
				fh.setJSONObject(obj);
				fh.setDescribe("图片发布成功!!!!!!");
			}else{
    
    
				fh.setStart(false);
				fh.setDescribe("图片发布失败!!!!!!");
			}
		} catch (Exception e) {
    
    
			fh.setStart(false);
			fh.setMessage(e.getMessage());
			fh.setDescribe("图片发布异常!!!!!!");
		}
		return fh;
	}
	
	public Result IS_IssueImageExternal(String workspace,String layers, String url) {
    
    
		Result fh = new Result();
		if(getImage(workspace,layers).getStart()) {
    
    
			fh.setStart(true);
			fh.setDescribe("发布图片已存在!!!!!!");
		}else {
    
    
			return IssuePictureExternal(workspace,layers,url);
		}
		return fh;
	}
	
	
	public Result IS_IssueDeleteImageExternal(String workspace,String layers, String url) {
    
    
		Result fh = new Result();
		fh = getImage(workspace,layers);
		if(fh.getStart()) {
    
    
			fh = deleteImage(workspace,layers);
			if(fh.getStart()) {
    
    
				fh = IssuePictureExternal(workspace,layers,url);
			}
		}else {
    
    
			fh = IssuePictureExternal(workspace,layers,url);
		}
		return fh;
	}
	
	
	public Result IS_deleteImage(String workspace,String layers) {
    
    
		return deleteImage(workspace,layers);
	}
	
	public Result IS_getPicture(String workspace,String layers) {
    
    
		return getImage(workspace,layers);
	}
	
	public Result IS_getPictureAttribute(String workspace,String layers) {
    
    
		return getImageAttribute(workspace,layers);
	}
	
}

服务发布

GeoServer geoserver = new GeoServer(GeoServerConfig.getIp(),GeoServerConfig.getPort(),GeoServerConfig.getWorkspace(),GeoServerConfig.getUser(),GeoServerConfig.getPassword());

GeoserverPicture geoserverPicture = new GeoserverPicture(geoserver);

Map<String,Object> _map_= original.get_map_();

if(_map_ != null) {
    
    
   String url = _map_.get("preprocesurl").toString().replace(".tif", ".png");
   String layers = _map_.get("preprocesname").toString();
   com.xahb.geoserver.Result Result = geoserverPicture.IS_IssueDeleteImageExternal("xahbnew", layers, url);
   if(Result.getStart()) {
    
    
      System.out.println("geoserver发布成功");
   }else {
    
    
      throw new RuntimeException("geoserver发布失败");
   }

猜你喜欢

转载自blog.csdn.net/sll714827/article/details/113366287