Class: Bounds

Bounds

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

new SuperMap.Bounds(left, bottom, right, top, array)

common/commontypes/Bounds.js, line 10
Name Type Description
left number

左边界,注意考虑宽度,理论上小于right值。

bottom number

下边界。考虑高度,理论上小于top值。

right number

右边界。

top number

上边界。

array Array.<number>

[left, bottom, right, top] 如果同时传多个参数,则使用左下右上组成的数组。

Example
var 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

Members

bottomnumber

最小的垂直坐标系。

centerLonLatSuperMap.LonLat

bounds的地图空间的中心点。用 getCenterLonLat() 获得。

leftnumber

最小的水平坐标系。

namestring

验证信息前缀,name=value部分的name部分,默认为“token”。

最大的水平坐标系。

topnumber

最大的垂直坐标系。

valuestring

访问受安全限制的服务时用于通过安全认证的验证信息。

Methods

staticSuperMap.Bounds.fromArray(bbox, reverseAxisOrder){SuperMap.Bounds}

common/commontypes/Bounds.js, line 692

通过边界框数组创建Bounds。

Name Type Description
bbox Array(float)

边界值数组。 (e.g. [5,42,10,45])

reverseAxisOrder boolean

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

Returns:
Type Description
SuperMap.Bounds 返回根据传入的数组创建的新的边界对象。
Example
var bounds = SuperMap.Bounds.fromArray([-180,-90,100,80]);

staticSuperMap.Bounds.fromSize(size){SuperMap.Bounds}

common/commontypes/Bounds.js, line 707

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

Name Type Description
size SuperMap.Size

传入的边界大小。

Returns:
Type Description
SuperMap.Bounds 返回根据传入的边界大小的创建新的边界。
Example
var bounds = SuperMap.Bounds.fromSize(new SuperMap.Size(20,10));

staticSuperMap.Bounds.fromString(str, reverseAxisOrder){SuperMap.Bounds}

common/commontypes/Bounds.js, line 677

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

Name Type Description
str string

边界字符串,用逗号隔开 (e.g. "5,42,10,45")

reverseAxisOrder boolean

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

Returns:
Type Description
SuperMap.Bounds 返回给定的字符串创建的新的边界对象
Example
var bounds = SuperMap.Bounds.fromString("-180,-90,100,80");

staticSuperMap.Bounds.oppositeQuadrant(quadrant){string}

common/commontypes/Bounds.js, line 722

反转象限。"t"和"b" 交换,"r"和"l"交换, 如:"tl"变为"br"。

Name Type Description
quadrant string

代表象限的字符串,如:"tl"。

Returns:
Type Description
string 反转后的象限。

add(x, y){SuperMap.Bounds}

common/commontypes/Bounds.js, line 291

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

Name Type Description
x float

传入坐标点的x坐标。

y float

传入坐标点的y坐标。

Returns:
Type Description
SuperMap.Bounds 返回一个新的bounds,此bounds的坐标是由传入的x,y参数与当前bounds坐标计算所得。
Example
var bounds1 = new SuperMap.Bounds(-50,-50,40,40);
//bounds2 是新的 bounds
var bounds2 = bounds.add(20,10);

clone(){SuperMap.Bounds}

common/commontypes/Bounds.js, line 69

复制当前 bounds 对象。

Returns:
Type Description
SuperMap.Bounds 返回一个克隆的bounds。
Example
var bounds1 = new SuperMap.Bounds(-180,-90,180,90);
var bounds2 = bounds1.clone();

contains(x, y, inclusive){boolean}

common/commontypes/Bounds.js, line 420

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

Name Type Description
x float

传入的x坐标值。

y float

传入的y坐标值。

inclusive boolean

是否包含边界,默认为true。

Returns:
Type Description
boolean 传入的x,y坐标在当前范围内。
Example
var bounds = new SuperMap.Bounds(-50,-50,40,40);
//isContains = true
var isContains = bounds.contains(40,40,true);

containsBounds(bounds, partial, inclusive){boolean}

common/commontypes/Bounds.js, line 537

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

Name Type Description
bounds SuperMap.Bounds

目标边界。

partial boolean

目标边界的任意部分都包含在当前边界中则被认为是包含关系。默认为false, 如果设为false,整个目标边界全部被包含在当前边界范围内。

inclusive boolean

边缘共享被视为包含。默认为true。

Returns:
Type Description
boolean 传入的边界被当前边界包含。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
var isContains = bounds.containsBounds(
     new SuperMap.Bounds(-170,-90,100,80),true,true
 );

containsLonLat(ll, options){boolean}

common/commontypes/Bounds.js, line 356

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

Name Type Description
ll SuperMap.LonLat | Object

对象或者是一个 包含 'lon' 与 'lat' 属性的对象。

options Object

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

Returns:
Type Description
boolean 传入坐标是否包含在范围内.
Example
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)
     }
     );

containsPixel(px, inclusive){boolean}

common/commontypes/Bounds.js, line 405

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

Name Type Description
px SuperMap.Pixel

提供的像素参数。

inclusive boolean

是否包含边界,默认为true。

Returns:
Type Description
boolean 传入的pixel在当前边界范围之内。
Example
var bounds = new SuperMap.Bounds(-50,-50,40,40);
//isContains = true
var isContains = bounds.containsPixel(new SuperMap.Pixel(40,40),true);

destroy()

common/commontypes/Bounds.js, line 660

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

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

determineQuadrant(lonlat){string}

common/commontypes/Bounds.js, line 567

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

Name Type Description
lonlat SuperMap.LonLat

传入的坐标对象。

Returns:
Type Description
string 传入坐标所在的象限("br" "tr" "tl" "bl" 分别对应"右下","右上","左上" "左下")。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
//str = "tr";
var str = bounds.determineQuadrant(
     new SuperMap.LonLat(20,20)
 );

equals(bounds){boolean}

common/commontypes/Bounds.js, line 82

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

Name Type Description
bounds SuperMap.Bounds

需要进行计较的 bounds。

Returns:
Type Description
boolean 如果 bounds 对象的边和传入的 bounds 一致则返回true,不一致或传入的 bounds 参数为NULL则返回false。
Example
var bounds1 = new SuperMap.Bounds(-180,-90,180,90);
var bounds2 = new SuperMap.Bounds(-180,-90,180,90);
var isEquals = bounds1.equals(bounds2);

extend(object)

common/commontypes/Bounds.js, line 310

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

Name Type Description
object SuperMap.Geometry.Point | SuperMap.LonLat | SuperMap.Bounds

可以是point,lanlat和bounds。

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

getCenterLonLat(){SuperMap.LonLat}

common/commontypes/Bounds.js, line 239

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

Returns:
Type Description
SuperMap.LonLat 返回当前地理范围的中心点。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
var lonlat = bounds.getCenterLonLat();

getCenterPixel(){SuperMap.Pixel}

common/commontypes/Bounds.js, line 226

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

Returns:
Type Description
SuperMap.Pixel 返回像素格式的当前范围的中心点。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
var pixel = bounds.getCenterPixel();

getHeight(){float}

common/commontypes/Bounds.js, line 201

获取bounds的高度。

Returns:
Type Description
float 返回边界高度(top减去bottom)。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
//height = 170;
var height = bounds.getHeight();

getSize(){SuperMap.Size}

common/commontypes/Bounds.js, line 214

获取边框大小。

Returns:
Type Description
SuperMap.Size 返回边框大小。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
var size = bounds.getSize();

getValue(){string}

common/commontypes/Credential.js, line 62

获取value

Returns:
Type Description
string 返回value字符串,在iServer服务下该value值即为token值。
Example
var credential = new SuperMap.Credential("2OMwGmcNlrP2ixqv1Mk4BuQMybOGfLOrljruX6VcYMDQKc58Sl9nMHsqQaqeBx44jRvKSjkmpZKK1L596y7skQ..","token");
//这里 str = "2OMwGmcNlrP2ixqv1Mk4BuQMybOGfLOrljruX6VcYMDQKc58Sl9nMHsqQaqeBx44jRvKSjkmpZKK1L596y7skQ..";
var str = credential.getValue();

getWidth(){float}

common/commontypes/Bounds.js, line 188

获取bounds的宽度。

Returns:
Type Description
float 获取当前bounds的宽度(right减去left)。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
//width = 280;
var width = bounds.getWidth();

intersectsBounds(bounds, options){boolean}

common/commontypes/Bounds.js, line 456

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

Name Type Description
bounds SuperMap.Bounds

目标边界。

options Object

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

Returns:
Type Description
boolean 传入的bounds对象与当前bounds相交。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
var isIntersects = bounds.intersectsBounds(
     new SuperMap.Bounds(-170,-90,120,80)
 );

scale(ratio, origin){SuperMap.Bounds}

common/commontypes/Bounds.js, line 256

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

Name Type Description
ratio float

需要扩大的比例,默认为1。

origin SuperMap.Pixel | SuperMap.LonLat

扩大时的基准点,默认为当前bounds的中心点。

Returns:
Type Description
SuperMap.Bounds 返回通过ratio、origin计算得到的新的边界范围。
Example
var bounds = new SuperMap.Bounds(-50,-50,40,40);
var bounds2 = bounds.scale(2);

toArray(reverseAxisOrder){Array}

common/commontypes/Bounds.js, line 115

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

Name Type Description
reverseAxisOrder boolean

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

Returns:
Type Description
Array left, bottom, right, top数组。
Example
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);

toBBOX(decimal, reverseAxisOrder){string}

common/commontypes/Bounds.js, line 136

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

Name Type Description
decimal integer

边界方位坐标的有效数字个数,默认为6。

reverseAxisOrder boolean

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

Returns:
Type Description
string 边界对象的字符串表示形式,如:"5,42,10,45"。
Example
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);

toGeometry(){SuperMap.Geometry.Polygon}

common/commontypes/Bounds.js, line 168

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

Returns:
Type Description
SuperMap.Geometry.Polygon 基于当前bounds坐标创建的新的多边形。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
//SuperMap.Geometry.Polygon对象
var geo = bounds.toGeometry();

toServerJSONObject(){Object}

common/commontypes/Bounds.js, line 640

转换成对应的 JSON 格式对象。

Returns:
Type Description
Object 返回json 格式的Object对象。
Example
var bounds = new SuperMap.Bounds(-180,-90,100,80);
var obj = bounds.toServerJSONObject();

toString(){string}

common/commontypes/Bounds.js, line 103

返回此对象的字符串形式

Returns:
Type Description
string 边界对象的字符串表示形式(left,bottom,right,top),例如: "-180,-90,180,90"
Example
var bounds = new SuperMap.Bounds(-180,-90,180,90);
var str = bounds.toString();

wrapDateLine(maxExtent, options){SuperMap.Bounds}

common/commontypes/Bounds.js, line 590

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

Name Type Description
maxExtent SuperMap.Bounds

最大的边界范围(一般是全球范围)。

options Object

可选选项参数。
leftTolerance - {float} left允许的误差。默认为0。
rightTolerance - {float} right允许的误差。默认为0。

Returns:
Type Description
SuperMap.Bounds 克隆当前边界。如果当前边界完全在最大范围之外此函数则返回一个不同值的边界, 若落在最大边界的左边,则给当前的bounds值加上最大范围的宽度,即向右移动, 若落在右边,则向左移动,即给当前的bounds值加上负的最大范围的宽度。
Example
var bounds = new SuperMap.Bounds(380,-40,400,-20);
var maxExtent = new SuperMap.Bounds(-180,-90,100,80);
//新的bounds
var newBounds = bounds.wrapDateLine(maxExtent);