SuperMap.Bounds

表示边界类实例。使用bounds之前需要设置left,bottom, right, top四个属性,这些属性的初始值为null。

例如

bounds = new SuperMap.Bounds();
bounds.extend(new SuperMap.LonLat(4,5));
bounds.extend(new SuperMap.LonLat(5,6));
bounds.toBBOX(); // returns 4,5,5,6
Summary
SuperMap.Bounds 表示边界类实例。使用bounds之前需要设置left,bottom, right, top四个属性,这些属性的初始值为null。
Properties
bottom {Number} 最小的垂直坐标系。
left {Number} 最小的水平坐标系。
right {Number} 最大的水平坐标系。
top {Number} 最大的垂直坐标系。
Constructor
SuperMap.Bounds 创建新的bounds对象。
Functions
add 在当前的dounds上按照传入的坐标点进行平移,返回新的范围。
clone 复制当前 bounds 对象。
contains 判断传入的x,y坐标值是否在范围内。
containsBounds 判断目标边界是否被当前边界包含在内。
containsLonLat 判断传入的坐标是否在范围内。
containsPixel 判断传入的像素是否在范围内。 直接匹配大小,不涉及像素和地理转换
destroy 销毁此对象。 销毁后此对象的所有属性为null,而不是初始值。
determineQuadrant 判断传入坐标在bounds范围内的象限。以bounds中心点为坐标原点。
equals 判断两个 bounds 对象是否相等。
extend 在当前bounds上扩展bounds,支持point,lanlat和bounds。 扩展后的bounds的范围是两者的结合
fromArray 通过边界框数组创建Bounds
fromSize 通过传入的边界大小来创建新的边界。
fromString 通过字符串参数创建新的bounds的构造函数
getCenterLonLat 获取地理格式的范围中心点
getCenterPixel 获取像素格式的范围中心点
getHeight 获取bounds的高度
getSize 获取边框
getWidth 获取bounds的宽度
intersectsBounds 判断目标边界范围是否与当前边界范围相交。如果两个边界范围中的任意 边缘相交或者一个边界包含了另外一个就认为这两个边界相交。
scale 按照比例 扩大/缩小 出一个新的bounds。
toArray 边界对象的数组表示形式 。
toBBOX 取小数点后decimal位数字进行四舍五入再转换为BBOX字符串
toGeometry 基于当前边界范围创建一个新的多边形对象
toString 返回此对象的字符串形式
transform 范围(Bounds)对象的投影转换。 (在自身上做投影转换)
wrapDateLine 将当前bounds移动到最大边界范围内部(所谓的内部是相交或者内部)

Properties

left

{Number} 最小的水平坐标系。

bottom

{Number} 最小的垂直坐标系。

right

{Number} 最大的水平坐标系。

top

{Number} 最大的垂直坐标系。

Constructor

SuperMap.Bounds

创建新的bounds对象。

var bounds = new SuperMap.Bounds(-180,-90,180,90);

Parameters (four arguments)

left {Number} 左边界,注意考虑宽度,理论上小于right值。
bottom {Number} 下边界。考虑高度,理论大于top值
right {Number} 右边界
top {Number} 上边界

Parameters (single argument)

array {Array(Float)} [left, bottom, right, top] 左下右上组成的数组。

Functions

clone

clone:function()

复制当前 bounds 对象。

例如

var bounds1 = new SuperMap.Bounds(-180,-90,180,90);
var bounds2 = bounds1.clone();

Returns

{SuperMap.Bounds} 返回一个克隆的bounds

equals

equals:function( bounds )

判断两个 bounds 对象是否相等。

例如

var bounds1 = new SuperMap.Bounds(-180,-90,180,90);
var bounds2 = new SuperMap.Bounds(-180,-90,180,90);
var isEquals = bounds1.equals(bounds2);

Parameters

bounds {SuperMap.Bounds} 需要进行计较的 bounds

Returns

{Boolean} 如果 bounds 对象的边和传入的 bounds 一致则返回true,不一 致或传入的 bounds 参数为NULL则返回false。

toString

toString:function()

返回此对象的字符串形式

例如

var bounds = new SuperMap.Bounds(-180,-90,180,90);
var str = bounds.toString();

Returns

{String} 边界对象的字符串表示形式(left,bottom,right,top),例如: “-180,-90,180,90”

toArray

toArray: function( reverseAxisOrder )

边界对象的数组表示形式 。

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
//array1 = [-180,-90,100,80];
var array1 = bounds.toArray();
//array1 = [-90,-180,80,100];
var array2 = bounds.toArray(true);

Parameters

reverseAxisOrder {Boolean} 是否反转轴顺序, 如果设为true,则倒转顺序(bottom,left,top,right),否则按正常轴顺序(left,bottom,right,top)。

Returns

{Array} left, bottom, right, top数组

toBBOX

toBBOX:function( decimal,
reverseAxisOrder )

取小数点后decimal位数字进行四舍五入再转换为BBOX字符串

例如

var bounds = new SuperMap.Bounds(-1.1234567,-1.7654321,1.4444444,1.5555555);
//str1 = "-1.123457,-1.765432,1.444444,1.555556";
var str1 = bounds.toBBOX();
//str2 = "-1.1,-1.8,1.4,1.6";
var str2 = bounds.toBBOX(1);
//str2 = "-1.8,-1.1,1.6,1.4";
var str2 = bounds.toBBOX(1,true);

Parameters

decimal {Integer} 边界方位坐标的有效数字个数,默认为6
reverseAxisOrder {Boolean} 是否是反转轴顺序。 如果设为true,则倒转顺序(bottom,left,top,right),否则按正常轴顺序(left,bottom,right,top)。

Returns

{String} 边界对象的字符串表示形式,如:”5,42,10,45”

toGeometry

toGeometry: function()

基于当前边界范围创建一个新的多边形对象

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
//SuperMap.Geometry.Polygon对象
var geo = bounds.toGeometry();

Returns

{SuperMap.Geometry.Polygon} 基于当前bounds坐标创建的新的多边形.

getWidth

getWidth:function()

获取bounds的宽度

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
//width = 280;
var width = bounds.getWidth();

Returns

{Float} 获取当前bounds的宽度(right减去left)

getHeight

getHeight:function()

获取bounds的高度

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
//height = 170;
var height = bounds.getHeight();

Returns

{Float} 返回边界高度(top减去bottom)。

getSize

getSize:function()

获取边框

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
var size = bounds.getSize();

Returns

{SuperMap.Size} 返回边框。

getCenterPixel

getCenterPixel:function()

获取像素格式的范围中心点

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
var pixel = bounds.getCenterPixel();

Returns

{SuperMap.Pixel} 返回像素格式的当前范围的中心点。

getCenterLonLat

getCenterLonLat:function()

获取地理格式的范围中心点

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
var lonlat = bounds.getCenterLonLat();

Returns

{SuperMap.LonLat} 返回当前地理范围的中心点。

scale

scale: function( ratio,
origin )

按照比例 扩大/缩小 出一个新的bounds。

例如

var bounds = new SuperMap.Bounds(-50,-50,40,40);
var bounds2 = bounds.scale(2);

Parameters

ratio {Float} 需要扩大的比例,默认为1
origin {SuperMap.Pixel or SuperMap.LonLat} 扩大时的基准点,默认为当前bounds的中心点。

Returns

{SuperMap.Bounds} 返回通过ratio、origin计算得到的新的边界范围。

add

add:function( x,
y )

在当前的dounds上按照传入的坐标点进行平移,返回新的范围。

例如

var bounds1 = new SuperMap.Bounds(-50,-50,40,40);
//bounds2 是新的 bounds
var bounds2 = bounds.add(20,10);

Parameters

x {Float} 传入坐标点的x坐标。
y {Float} 传入坐标点的y坐标。

Returns

{SuperMap.Bounds} 返回一个新的bounds,此bounds的坐标是由传入 的x,y参数与当前bounds坐标计算所得。

extend

extend:function( object )

在当前bounds上扩展bounds,支持point,lanlat和bounds。 扩展后的bounds的范围是两者的结合

例如

var bounds1 = new SuperMap.Bounds(-50,-50,40,40);
//bounds改变
bounds.extend(new SuperMap.LonLat(50,60));

Parameters

object {SuperMap.Geometry.Point or SuperMap.LonLat or SuperMap.Bounds} 可以是point,lanlat和bounds。

containsLonLat

containsLonLat:function( ll,
options )

判断传入的坐标是否在范围内。

例如

var bounds1 = new SuperMap.Bounds(-50,-50,40,40);
//isContains1 = true
//这里的第二个参数可以直接为 Boolean 类型,也就是inclusive
var isContains1 = bounds.containsLonLat(new SuperMap.LonLat(40,40),true);

//(40,40)在范围内,同样(40+360,40)也在范围内
var bounds2 = new SuperMap.Bounds(-50,-50,40,40);
//isContains2 = true;
var isContains2 = bounds2.containsLonLat(
     new SuperMap.LonLat(400,40),
     {
          inclusive:true,
          //全球的范围
          worldBounds: new SuperMap.Bounds(-180,-90,180,90)
     }
     );

Parameters

ll {<SuperMap.LonLat>|Object} SuperMap.LonLat 对象或者是一个 包含 ‘lon’ 与 ‘lat’ 属性的对象。
options {Object} 可选参数

Acceptable options

inclusive {Boolean} 是否包含边界,默认为 true 。
worldBounds {SuperMap.Bounds} 如果提供 worldBounds 参数, 如 果 ll 参数提供的坐标超出了世界边界(worldBounds), 但是通过日界 线的转化可以被包含, 它将被认为是包含在该范围内的。

Returns

{Boolean} 传入坐标是否包含在范围内.

containsPixel

containsPixel:function( px,
inclusive )

判断传入的像素是否在范围内。 直接匹配大小,不涉及像素和地理转换

例如

var bounds = new SuperMap.Bounds(-50,-50,40,40);
//isContains = true
var isContains = bounds.containsPixel(new SuperMap.Pixel(40,40),true);

Parameters

px {SuperMap.Pixel} 提供的像素参数。
inclusive {Boolean} 是否包含边界,默认为true。

Returns

{Boolean} 传入的pixel在当前边界范围之内。

contains

contains:function( x,
y,
inclusive )

判断传入的x,y坐标值是否在范围内。

例如

var bounds = new SuperMap.Bounds(-50,-50,40,40);
//isContains = true
var isContains = bounds.contains(40,40,true);

Parameters

x {Float} 传入的x坐标值。
y {Float} 传入的y坐标值。
inclusive {Boolean} 是否包含边界,默认为true。

Returns

{Boolean} 传入的x,y坐标在当前范围内。

intersectsBounds

intersectsBounds:function( bounds,
options )

判断目标边界范围是否与当前边界范围相交。如果两个边界范围中的任意 边缘相交或者一个边界包含了另外一个就认为这两个边界相交。

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
var isIntersects = bounds.intersectsBounds(
     new SuperMap.Bounds(-170,-90,120,80)
 );

Parameters

bounds {SuperMap.Bounds} 目标边界。
options {Object} 可选参数。

Acceptable options

inclusive {Boolean} 边缘重合也看成相交,默认为true。 如果是false,两个边界范围没有重叠部分仅仅是在边缘相接(重合),这种情况被认为没有相交。
worldBounds {SuperMap.Bounds} 提供了 worldBounds 参数, 如果他们相交时是在全 球范围内, 两个边界将被视为相交。这仅适用于交叉或完全不在世界范围的边界。

Returns

{Boolean} 传入的bounds对象与当前bounds相交。

containsBounds

containsBounds:function( bounds,
partial,
inclusive )

判断目标边界是否被当前边界包含在内。

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
var isContains = bounds.containsBounds(
     new SuperMap.Bounds(-170,-90,100,80),true,true
 );

Parameters

bounds {SuperMap.Bounds} 目标边界。
partial {Boolean} 目标边界的任意部分都包含在当前边界中则被认为是包含关系。默认为false, 如果设为false,整个目标边界全部被包含在当前边界范围内。
inclusive {Boolean} 边缘共享被视为包含。默认为true

Returns

{Boolean} 传入的边界被当前边界包含。

determineQuadrant

determineQuadrant: function( lonlat )

判断传入坐标在bounds范围内的象限。以bounds中心点为坐标原点。

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
//str = "tr";
var str = bounds.determineQuadrant(
     new SuperMap.LonLat(20,20)
 );

Parameters

lonlat {SuperMap.LonLat} 传入的坐标对象。

Returns

{String} 传入坐标所在的象限(“br” “tr” “tl” “bl” 分别对应“右下”,“右上”, “左上”和“左下”)。

transform

transform: function( source,
dest )

范围(Bounds)对象的投影转换。 (在自身上做投影转换)

例如

var bounds1 = new SuperMap.Bounds(-180,-90,100,80);
//这里bounds1 = bounds2
var bounds2 = bounds1.transform(
     new SuperMap.Projection("EPSG:4326"),
     new SuperMap.Projection("EPSG:3857")
 );

Parameters

source {SuperMap.Projection} 源投影。
dest {SuperMap.Projection} 目标投影。

Returns

{SuperMap.Bounds} 返回本身,用于链接操作.

wrapDateLine

wrapDateLine: function( maxExtent,
options )

将当前bounds移动到最大边界范围内部(所谓的内部是相交或者内部)

例如

var bounds = new SuperMap.Bounds(380,-40,400,-20);
var maxExtent = new SuperMap.Bounds(-180,-90,100,80);
//新的bounds
var newBounds = bounds.wrapDateLine(maxExtent);

Parameters

maxExtent {SuperMap.Bounds} 最大的边界范围(一般是全球范围)。
options {Object} 可选选项参数。

Allowed Options

leftTolerance {float} left允许的误差。默认为0
rightTolerance {float} right允许的误差。默认为0

Returns

{SuperMap.Bounds} 克隆当前边界。如果当前边界完全在最大范围之外此函数则返回一个不同值的边界, 若落在最大边界的左边,则给当前的bounds值加上最大范围的宽度,即向右移动, 若落在右边,则向左移动,即给当前的bounds值加上负的最大范围的宽度。

destroy

destroy: function()

销毁此对象。 销毁后此对象的所有属性为null,而不是初始值。

例如

var bounds = new SuperMap.Bounds(-180,-90,100,80);
bounds.destroy();

fromString

SuperMap.Bounds.fromString = function( str,
reverseAxisOrder )

通过字符串参数创建新的bounds的构造函数

例如

var bounds = new SuperMap.Bounds.fromString("-180,-90,100,80");

Parameters

str {String} 边界字符串,用逗号隔开 (e.g.  <i>”5,42,10,45”</i>)
reverseAxisOrder {Boolean} 是否反转轴顺序.  如果设为true,则倒转顺序(bottom,left,top,right),否则按正常轴顺序(left,bottom,right,top)。

Returns

{SuperMap.Bounds} 返回给定的字符串创建的新的边界对象

fromArray

SuperMap.Bounds.fromArray = function( bbox,
reverseAxisOrder )

通过边界框数组创建Bounds

例如

var bounds = new SuperMap.Bounds.fromArray([-180,-90,100,80]);

Parameters

bbox {Array(Float)} 边界值数组 (e.g.  <i>[5,42,10,45]</i>)
reverseAxisOrder {Boolean} 是否是反转轴顺序 如果设为true,则倒转顺序(bottom,left,top,right),否则按正常轴顺序(left,bottom,right,top)。

Returns

{SuperMap.Bounds} 返回根据传入的数组创建的新的边界对象。

fromSize

SuperMap.Bounds.fromSize = function( size )

通过传入的边界大小来创建新的边界。

例如

var bounds = new SuperMap.Bounds.fromSize(new SuperMap.Size(20,10));

Parameters

size {SuperMap.Size} 传入的边界大小

Returns

{SuperMap.Bounds} 返回根据传入的边界大小的创建新的边界。

clone:function()
复制当前 bounds 对象。
equals:function( bounds )
判断两个 bounds 对象是否相等。
toString:function()
返回此对象的字符串形式
toArray: function( reverseAxisOrder )
边界对象的数组表示形式 。
toBBOX:function( decimal,
reverseAxisOrder )
取小数点后decimal位数字进行四舍五入再转换为BBOX字符串
toGeometry: function()
基于当前边界范围创建一个新的多边形对象
getWidth:function()
获取bounds的宽度
getHeight:function()
获取bounds的高度
getSize:function()
获取边框
getCenterPixel:function()
获取像素格式的范围中心点
getCenterLonLat:function()
获取地理格式的范围中心点
scale: function( ratio,
origin )
按照比例 扩大/缩小 出一个新的bounds。
add:function( x,
y )
在当前的dounds上按照传入的坐标点进行平移,返回新的范围。
extend:function( object )
在当前bounds上扩展bounds,支持point,lanlat和bounds。 扩展后的bounds的范围是两者的结合
containsLonLat:function( ll,
options )
判断传入的坐标是否在范围内。
containsPixel:function( px,
inclusive )
判断传入的像素是否在范围内。 直接匹配大小,不涉及像素和地理转换
contains:function( x,
y,
inclusive )
判断传入的x,y坐标值是否在范围内。
intersectsBounds:function( bounds,
options )
判断目标边界范围是否与当前边界范围相交。如果两个边界范围中的任意 边缘相交或者一个边界包含了另外一个就认为这两个边界相交。
containsBounds:function( bounds,
partial,
inclusive )
判断目标边界是否被当前边界包含在内。
determineQuadrant: function( lonlat )
判断传入坐标在bounds范围内的象限。以bounds中心点为坐标原点。
transform: function( source,
dest )
范围(Bounds)对象的投影转换。 (在自身上做投影转换)
wrapDateLine: function( maxExtent,
options )
将当前bounds移动到最大边界范围内部(所谓的内部是相交或者内部)
destroy: function()
销毁此对象。 销毁后此对象的所有属性为null,而不是初始值。
SuperMap.Bounds.fromString = function( str,
reverseAxisOrder )
通过字符串参数创建新的bounds的构造函数
SuperMap.Bounds.fromArray = function( bbox,
reverseAxisOrder )
通过边界框数组创建Bounds
SuperMap.Bounds.fromSize = function( size )
通过传入的边界大小来创建新的边界。
创建新的bounds对象。
多边形几何对象类。
此类描绘一对高宽值的实例。
此类用x,y坐标描绘屏幕坐标(像素点)。
这个类用来表示经度和纬度对。
点几何对象类。
坐标转换类。这个类封装了与 proj4js 投影对象进行交互的几种方法。
Close