⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wcsboundingbox.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
/**
 * 
 */
package com.esri.solutions.jitk.datasources.ogc.wcs.info;

import com.esri.solutions.jitk.datasources.ogc.wcs.Val;

/**
 * @author vlad2928
 *
 */
public class WCSBoundingBox {
	
	private double minX;
	private double minY;
	private double maxX;
	private double maxY;
	
	public WCSBoundingBox() {
		this.minX = Double.NaN;
		this.minY = Double.NaN;
		this.maxX = Double.NaN;
		this.maxY = Double.NaN;
	}
	
	public WCSBoundingBox(double minX, double minY, double maxX, double maxY) {
		this.minX = minX;
		this.minY = minY;
		this.maxX = maxX;
		this.maxY = maxY;
	}
	
	public WCSBoundingBox(String[] bbox) {
		this();
		if(bbox != null && bbox.length == 4) {
			this.minX = Val.chkDbl(bbox[0], Double.NaN);
			this.minY = Val.chkDbl(bbox[1], Double.NaN);
			this.maxX = Val.chkDbl(bbox[2], Double.NaN);
			this.maxY = Val.chkDbl(bbox[3], Double.NaN);
		}
	}

	public boolean isValid() {
		return (this.minX != Double.NaN && this.minY != Double.NaN && this.maxX != Double.NaN && this.maxY != Double.NaN);
	}
	
	public void reaspect(int imgWidth, int imgHeight) {
		
		if(isValid()) {
			double ratio = (double)imgWidth / (double)imgHeight;
			if(ratio < 0.0001) ratio = 0.0001;
			
			double bboxWidth = getWidth();
			double bboxHeight = getHeight();
			
			if((bboxWidth / bboxHeight) < ratio) { // stretch x
				double bboxCenterX = this.minX + bboxWidth / 2;
				double width = (bboxHeight * ratio) / 2;
				this.minX = bboxCenterX - width;
				this.maxX = bboxCenterX + width;
			
			} else { // stretch y
				double bboxCenterY = this.minY + bboxHeight / 2;
				double height = (bboxWidth / ratio) / 2;
				this.minY = bboxCenterY - height;
				this.maxY = bboxCenterY + height;
			}
		}
    }
	
	public double getMinX() {
		return this.minX;
	}
	
	public void setMinX(double minX) {
		this.minX = minX;
	}

	public double getMinY() {
		return this.minY;
	}

	public void setMinY(double minY) {
		this.minY = minY;
	}

	public double getMaxX() {
		return this.maxX;
	}

	public void setMaxX(double maxX) {
		this.maxX = maxX;
	}

	public double getMaxY() {
		return this.maxY;
	}
	
	public void setMaxY(double maxY) {
		this.maxY = maxY;
	}

	public double getWidth() {
		return this.maxX - this.minX;
	}
	
	public double getHeight() {
		return this.maxY - this.minY;
	}
	
	public String toString() {
		return this.minX + "," + this.minY + "," + this.maxX + "," + this.maxY;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -