bound.js

来自「WebGis基本功能展示」· JavaScript 代码 · 共 79 行

JS
79
字号
Bound = Class.create();
Bound.prototype = {
    initialize: function(minX, maxX, minY, maxY){
        this.minX = minX;
	    this.maxX = maxX;
	    this.minY = minY;
	    this.maxY = maxY;
	    this.centerCoord = new Coordinate((this.minX+this.maxX)/2,  (this.minY+this.maxY)/2);
    },
    
    getCenterCoord: function(){
        return this.centerCoord;
    },
    
    clone: function(coord){
        if (coord == null || coord.isSame(this.centerCoord)) {
			return this;
		} 
		else {
			var minX = this.minX + coord.x - this.centerCoord.x;
			var maxX = this.maxX + coord.x - this.centerCoord.x;
			var minY = this.minY + coord.y - this.centerCoord.y;
			var maxY = this.maxY + coord.y - this.centerCoord.y;
			return new Bound(minX, maxX, minY, maxY);
		}
    },
    
    isCover: function(bound){
        if (this.getMinX()>bound.getMaxX() || this.getMaxX()<bound.getMinX() || this.getMinY()>bound.getMaxY() || this.getMaxY()<bound.getMinY()) {
			return false;
		}
		return true;
    },
    
    isWithin: function(coord){
        if (coord.x<this.maxX && coord.x>this.minX && coord.y<this.maxY && coord.y>this.minY) {
			return true;
		}
		return false;
    },
    
    getMinX: function() {
		return this.minX;
	},

	getMaxX: function() {
		return this.maxX;
	},
	
	getMinY: function() {
		return this.minY;
	},

	getMaxY: function() {
		return this.maxY;
	},
    
	getHeight: function() {
		return Math.abs(this.maxY - this.minY);
	},
	
	getWidth: function() {
		return Math.abs(this.maxX - this.minX);
	},
	
	getPixelHeight: function(zoom) {
	    var topleft = Util.getScreenPixel(new Coordinate(this.minX,this.maxY), zoom).y;
	    var bottomright = Util.getScreenPixel(new Coordinate(this.maxX,this.minY), zoom).y;
	    return Math.floor(Math.abs(topleft - bottomright));

	},
	//像素宽度
	getPixelWidth: function(zoom) {
	    var topleft = Util.getScreenPixel(new Coordinate(this.minX,this.maxY), zoom).x;
	    var bottomright = Util.getScreenPixel(new Coordinate(this.maxX,this.minY), zoom).x;
	    return Math.floor(Math.abs(bottomright - topleft));
	}
    
}

⌨️ 快捷键说明

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